ユーザーが開いているすべてのアクティビティを終了する場合は、アプリケーションの開始時に実行される最初のアクティビティをロードするボタンを押し、他のすべてのアクティビティをクリアしてから、残りの最後のアクティビティを終了する必要があります。ユーザーが終了ボタンを押したときに、次のコードを実行します。私の場合、LoginActivity
は私のプログラムで実行する最初のアクティビティです。
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
上記のコードは、を除くすべてのアクティビティをクリアしますLoginActivity
。次に、次のコードをLoginActivity
「s」の中に入れて、が再作成されて「EXIT」信号が渡さonCreate(...)
れたときをリッスンします。LoginActivity
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Androidで終了ボタンを作成するのが難しいのはなぜですか?
Androidは、使用するプログラムがバックグラウンドで実行されているかどうかをユーザーが気にしないようにするため、アプリケーションに「終了」ボタンを設定しないように努めています。
Android OSの開発者は、予期しないシャットダウンや電話の電源オフに耐えられるようにプログラムを望んでいます。ユーザーがプログラムを再起動すると、中断したところから再開します。そのため、ユーザーはアプリケーションの使用中に電話を受けたり、マップを開いたりして、アプリケーションを解放してより多くのリソースを利用できるようにすることができます。
ユーザーがアプリケーションを再開すると、中断することなく中断したところから再開します。この終了ボタンは、アクティビティマネージャーからの電力を奪っており、自動的に管理されるAndroidプログラムのライフサイクルに問題を引き起こす可能性があります。