ユーザーがボタンをクリックするまでビープ音を鳴らし続けるアクティビティがあります。ボタンをクリックすると、メッセージが表示されます。メッセージを表示した後、ユーザーが戻るボタンを押して終了する代わりに、アクティビティを終了してホーム画面に移動したいと考えています。
finish()
メソッドはこれを行いますか?はいの場合、どこでどのように実装すればよいですか?
あらゆる種類の助けをいただければ幸いです。ありがとう
ユーザーがボタンをクリックするまでビープ音を鳴らし続けるアクティビティがあります。ボタンをクリックすると、メッセージが表示されます。メッセージを表示した後、ユーザーが戻るボタンを押して終了する代わりに、アクティビティを終了してホーム画面に移動したいと考えています。
finish()
メソッドはこれを行いますか?はいの場合、どこでどのように実装すればよいですか?
あらゆる種類の助けをいただければ幸いです。ありがとう
Intent i= new Intent("package.homescreenactivity");//homescreen of your app.
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i);
finish();
アクティビティスタックをクリアして、ホーム画面に戻ります。
全体のコンセプトを理解するには、このサイトをご覧になることをお勧めします。http://developer.android.com/guide/components/tasks-and-back-stack.html。このサイトでは、アクティビティのバックスタックがどのように機能するかについて説明しています。
更新:(2014年8月15日)
バックスタックをクリアするのは良い考えではないかもしれません。効果的なナビゲーションの設計ガイドラインをご覧ください。
戻るボタンを押すと、前のアクティビティに戻ることができます。
小切手
http://developer.android.com/design/patterns/navigation.html
すべてのアクティビティにfinish()メソッドを適用します。アクティビティが終了すると、ホーム画面に戻ります。
ケース1:ボタンクリックの場合
public void onClick(View v) {
// Show message here
moveTaskToBack(true);
}
ケース2:ユーザーに家に帰るように頼みたい場合
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
alertbox.setTitle(res.getString("Title"));
alertbox.setMessage(res.getString("Exit"));
alertbox.setIcon(R.drawable.logo);
alertbox.setPositiveButton(res.getString(R.string.Yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
exit();
}
});
alertbox.setNeutralButton(res.getString(R.string.No),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
}
});
alertbox.show();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void exit() {
moveTaskToBack(true);
}
メッセージをとして表示していると仮定して、のボタンを押してalertdialog
呼び出します。finish()
alertdialog
Toast()
コールオンfinish()
ボタンを使用している場合は、の後にを押しToast()
てください。
finish()
Buttonでメソッドを適用でき、呼び出しonClick()
後、以下に示すように終了メソッドを適用できます。startActivity()
startActivity(intent obj);
finish();