2013-03-08 13 views
5

ユーザーがボタンをクリックするまでビープ音を鳴らすアクティビティがあります。 ボタンをクリックすると、メッセージが表示されます。メッセージを表示した後、ユーザーが戻るボタンを押して終了するのではなく、自分の活動を自分のホーム画面に出たい。アクティビティが終了した後にホーム画面に戻る

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

何か助けていただければ幸いです。ありがとう

答えて

7
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。 サイトでは、アクティビティバックスタックの仕組みについて話しています。

更新:(8月15日2014)

クリアBackstackは良いアイデアではないかもしれません。効果的なナビゲーションデザインガイドラインをご覧ください。

戻るボタンは、前のアクティビティに戻ることになっています。

チェック

http://developer.android.com/design/patterns/navigation.html

+1

申し訳ありませんが私は明確ではない場合。私はアンドロイド携帯電話のデフォルトのホーム画面を意味した。これはそれに戻りますか? – newbee

+0

編集した投稿を確認してください。 – Raghunandan

+0

はそれを得ました!ありがとう:) – newbee

1

すべての活動の仕上げ()メソッドを適用します。活動終了後、ホーム画面に戻ります。

1

ケース1:上finish()を呼び出し、あなたはalertdialogとしてメッセージを見せていると仮定すると、あなたが家に行くために、ユーザーに依頼する場合

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); 

    } 
1

:ボタンの

public void onClick(View v) { 
    // Show message here 
    moveTaskToBack(true); 
    } 

ケース2をクリックしてくださいalertdialogのボタンを押します。

Toast()を使用している場合は、Toast()の後にボタンを押すとfinish()が呼び出されます。

0

ボタンonClick()finish()メソッドを適用し、startActivity()の呼び出し後、以下のように仕上げ方法を適用することができます。

startActivity(intent obj); 
finish(); 
関連する問題