2012-03-12 10 views
5

私のアプリでは、EXITというボタンがあります。ユーザーがクリックすると、スタック内にある自分のアプリケーションのすべてのアクティビティを終了し、デフォルトのホームアクティビティまたはすべてのアプリケーションアクティビティに移動します。 。プログラムでAndroidのデフォルトホーム画面に移動するにはどうすればいいですか?

私は私のonClick()に次のコードを書かれている:

Intent intent = new Intent(Intent.CATEGORY_HOME); 
startActivity(intent); 

をしかし、それは私にlogcatに次のエラーを与える:

03-12 11:22:18.279: ERROR/AndroidRuntime(308): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.category.HOME } 

だから私はこれを達成するために何をすべきかが必要ですか?マニフェストで何らかの設定が必要か、私のアプローチが間違っていますか?

+1

[プログラムからホーム画面に行く]の可能複製(http://stackoverflow.com/questions/3724509を/ home-screen-programmatically) - –

答えて

13

このお試しください:

Intent homeIntent= new Intent(Intent.ACTION_MAIN); 
homeIntent.addCategory(Intent.CATEGORY_HOME); 
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(homeIntent); 
+1

スタックタスクからすべてのアクティビティが終了していますか? –

+1

いいえ、このコードはホーム画面に移動します。私はあなたにデフォルトのホーム画面に行くためのコードを与えました。 (あなたのログにあるように、それは例外を投げていた)。アプリケーションのすべてのアクティビティを終了するには、このコードの前に呼び出されるロジックを記述する必要があります。 – AndroDev

+0

Intent.FLAg_ACTIVITY_CLEAR_TOPこれはすべてのアクティビティがホームアクティビティの最上位にあるためです。 –

3

使用次のコードは、ホーム画面を起動する:

Intent intent=new Intent(this, HomeClass.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
関連する問題