6

ユーザーがボタンをクリックするまでビープ音を鳴らし続けるアクティビティがあります。ボタンをクリックすると、メッセージが表示されます。メッセージを表示した後、ユーザーが戻るボタンを押して終了する代わりに、アクティビティを終了してホーム画面に移動したいと考えています。

finish()メソッドはこれを行いますか?はいの場合、どこでどのように実装すればよいですか?

あらゆる種類の助けをいただければ幸いです。ありがとう

4

5 に答える 5

8
    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

于 2013-03-08T06:30:53.320 に答える
1

すべてのアクティビティにfinish()メソッドを適用します。アクティビティが終了すると、ホーム画面に戻ります。

于 2013-03-08T06:31:02.880 に答える
1

ケース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);

    }
于 2013-03-08T06:33:40.280 に答える
1

メッセージをとして表示していると仮定して、のボタンを押してalertdialog呼び出します。finish()alertdialog

Toast()コールオンfinish()ボタンを使用している場合は、の後にを押しToast()てください。

于 2013-03-08T06:33:41.817 に答える
0

finish()Buttonでメソッドを適用でき、呼び出しonClick()後、以下に示すように終了メソッドを適用できます。startActivity()

startActivity(intent obj);
finish(); 
于 2013-03-08T06:36:27.163 に答える