実際、私は Android のシンプルで基本的な概念について質問していることを知っています。finish()
しかし、私はこれらとonDestroy()
方法について少し混乱しています。これによりアクティビティが強制終了され、これらのアクティビティに関連付けられたリソースが解放されるかどうか。
アクティビティを 1 つだけ含む単純なアプリケーションを試してみました。アプリケーションが実行されると、アクティビティが開始されるようなコンセプトだと思いました。戻るボタンをクリックすると終了します。そして、メモリ使用量を知るために、各ライフサイクルメソッド内にいくつかのトーストメッセージを表示しました。そして、戻るボタンをクリックすると、、、およびが実行されonPause()
ましonStop()
たonDestroy()
。この活動は終わったと思いました。しかし、アプリケーションを再起動すると、前回よりも多くのメモリが必要になりました。これは、Eclipse からアプリを実行するか、ホーム画面からアプリケーションを再起動するたびに発生します。
なぜそれが起こっているのですか?アプリケーション/アクティビティを実際に破棄してメモリを解放するにはどうすればよいですか?
私は自分のコードを含めています。クラス内でトーストメッセージを1つだけ送信します。次に、メモリ使用量も増加しています。
アプリケーションを実行するたびに、割り当てられたサイズが次のように増加しています: 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();
}
}
マニフェスト:
<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>
メモリが毎回増加するのはなぜですか?