finish()とSystem.exit(0)の違い
852 ワード
finish()とSystem.exit(0)の違い
Activityにはライフサイクルがあります
onCreate->onStart->onResume->onPause->onStop->onDestroy
finishメソッド
finishはActivityのメソッドであり、Activityのみに対してfinish()を呼び出すと、アクティビティをバックグラウンドに押し出すだけで、すぐに解放されません.
メモリ、アクティブなリソースはクリーンアップされていません.
システムを呼び出すとexit(0)では、プロセス全体が殺され、アクティビティが占めるリソースも解放されます.
実はandroidのメカニズムはユーザーがアプリケーションを完全に終了できないことを決定して、あなたのアプリケーションが最も長い間使われたことがない時、
Android自体がアプリケーションを閉じることにします.
終了するには、次のようにします.ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
Androidmanifestでxmlに権限を追加
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());