gpt4 book ai didi

android - onDestroy() 或 finish() 是否真的终止了 Activity ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:20 41 4
gpt4 key购买 nike

其实我知道我问的是 Android 的简单和基本概念。但是我对这些 finish()onDestroy() 方法有点困惑。这是否会终止 Activity 并释放与这些 Activity 相关的资源?

我尝试了一个只包含一个 Activity 的简单应用程序。我认为这个概念就像当应用程序运行时, Activity 就会启动。当我们点击后退按钮时,它就会完成。我在每个生命周期方法中给出了一些 toast 消息以了解内存使用情况。当我单击后退按钮时,它会执行 onPause()onStop()onDestroy()。我以为这个 Activity 结束了。但是当我再次重新启动该应用程序时,它占用的内存比上次更多。每次我从 eclipse 运行应用程序或从主屏幕重新启动应用程序时,都会发生这种情况。

为什么会这样?我怎样才能真正销毁应用程序/Activity 以释放内存?


我包括我的代码。我只是在类里面只给一个 toast 词。然后内存使用量也在增加。

每次我运行应用程序时,分配的大小都会增加,例如:3302744、3442384、3474552

 public class myActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Toast.makeText(getBaseContext()," allocated size = " + Debug.getNativeHeapAllocatedSize(), 1).show();
}

}

list :

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".myActivity "
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

为什么内存每次都在增加?

最佳答案

finish() 终止 Activity 并释放内存...除非您存储了一些泄漏的引用...例如 onRetainNonConfigurationInstance() 之类的方法

当您按下后退按钮时,调用的是 finish() 方法,然后调用 onPause、onStop、onDestroy。

关于android - onDestroy() 或 finish() 是否真的终止了 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6108830/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com