私はAndroidアプリケーション開発に不慣れです。
私は1つのAndroidアプリケーションを開発しました。このアプリケーションでは、ユーザーが戻るボタンまたは終了ボタンを押したときに、finish()メソッドを呼び出します。このメソッドは、現在のアクティビティのみを閉じます。
私の要件は、終了ボタンをクリックすると、すべてのアクティビティが閉じられ、メニューページが表示されることです。これは可能ですか?
AアクティビティからBアクティビティに移動するときは、Afinish()
アクティビティで.soを呼び出します。トップアクティビティの戻るボタンまたは終了ボタンを押すと、スタックが空になり、メニュー画面またはホーム画面に移動します。android stack
finish() or get killed
例:AアクティビティからBアクティビティに移行する場合、以下の手順を実行します。
startActivity(new Intent(A.this, B.class));
finish();
これで、Aアクティビティが終了し、新しいBアクティビティが開始されます。ここで戻るボタンまたは終了ボタンを押すと、ホーム画面またはメニュー画面に移動します。
ここでは、戻るボタンを押したときにアプリに2つの方法があります。finish or kill
finish()
これを使用すると、Android画面の現在のアクティビティが閉じたり終了したりします。
例: AとBの2つのアクティビティがあります。インテントを使用してAアクティビティからBアクティビティに移動します。これで、前景のアクティビティはBになります。戻って、Bアクティビティを強制終了し、戻るボタンをクリックしてAfinish()
アクティビティに移動します。アクティビティを実行している場合は、アプリを閉じます。以下のコードを参照してください。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
}
return super.onKeyDown(keyCode, event);
}
これを使用android.os.Process.killProcess(android.os.Process.myPid());
すると、アプリが強制終了されます。つまり、アプリを強制的に閉じてホーム画面に移動します。以下のコードを参照してください。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Kills & force closes the app
android.os.Process.killProcess(android.os.Process.myPid());
}
return super.onKeyDown(keyCode, event);
}
この主題はいくつかの議論を受けました、これはあなたが探している情報のほとんどを含むべきものです。
また、アプリを閉じる方法と理由を理解するには、アクティビティに関するAndroidドキュメントのアクティビティライフサイクルとプロセスライフサイクルを参照してください。
私の要件は、終了ボタンをクリックすると、すべてのアクティビティが閉じられ、メニューページが表示されることです。
「メニューページ」があなたの活動であると仮定して、あなたの「メニューページ」を識別して、を呼び出しstartActivity()
、あなたのにフラグとしてを含めます。これにより、タスクからすべてのアクティビティがクリアされ、既存の「メニューページ」が前面に表示されます(または、「メニューページ」のインスタンスがない場合は作成されます)。Intent
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
Intent