1

「終了」ボタンをクリックすると「メイン」が実行されました

Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            startActivity(intent);

そして、アプリケーションに戻って確認します...これは最初の「アクティビティ」ではありません..これが最後の「アクティビティ」です

プログラムを設定するにはどうすればよいですか ... 最初のアクティビティから始めますか?

「終了」をクリックしたときのみ

私が持っている: [1] 活動 [2] 活動 [3] [4]

[4]または[3]アクティビティで「終了」を押したときに「メイン」に移動し、アプリを開始または戻ると、「戻る」またはボタン「下ボタン」を押して戻ると[1]アクティビティを再度作成しますこのボタンを押したときに「onResume()」を開始するアプリ

4

4 に答える 4

1

問題は、の作成方法にあると思いますIntent。おそらくこれらの2つのステートメント

intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

AndroidMainActivityにランチャーから開始されたと見なさせると、完全なナビゲーションスタックが復元され、最新の開始されたアクティビティが表示されます。これらの行を削除することをお勧めします。

を開始するための次のコードは正常に機能するMainActivityはずです。

Intent intent=new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2012-12-06T11:57:37.913 に答える
1

android:clearTaskOnLaunch属性を<activity>メイン アクティビティ (開始アクティビティ) のタグに設定することで、これを実現できます。

アクティビティで「終了」ボタンを押してタスクをクリアしたい場合は、finish()ホーム アクティビティを開始する前にそのアクティビティを呼び出すことができます。ただし、これは 2 番目のアクティビティで終了した場合にのみ適用されます。

于 2012-12-06T10:27:09.997 に答える
0

最初の活動(主要な活動)

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        moveTaskToBack(true);
        android.os.Process.killProcess(android.os.Process.myPid());
    }

そしてボタン「終了」は次のコードを追加します

    Intent goIntent = new Intent(getApplicationContext(),
                [activity].class);
        goIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(goIntent);
于 2012-12-07T09:28:45.773 に答える
0

あなたが試すことができます

インテント.setFlags(インテント.FLAG_ACTIVITY_CLEAR_TOP | インテント.FLAG_ACTIVITY_NEW_TASK);

于 2015-07-02T06:39:06.263 に答える