0

アプリケーションにテーマ変更オプションを追加しようとしています。タイムラインと呼ばれるメイン アクティビティがあります。そこから、ユーザーはテーマ変更アクティビティに移動して、テーマを変更できます。テーマ変更アクティビティのテーマは変更されますが、タイムライン、つまりメインアクティビティは変更されません。タイムライン アクティビティを再度リロードすると、変更が表示されます。

次に、次のコードを追加して、themechange アクティビティのボタンを保存し、タイムライン アクティビティをリロードします

save.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            finish();
            Intent i = new Intent(BackgroundChange.this, TimeLine.class);
            i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(i);
            Intent k = new Intent(BackgroundChange.this,
                    SettingsActivity.class);
            startActivity(k);

        }
    });

そしてそれはうまくいきます。

しかし、アプリケーションを終了して再度開始すると、テーマ変更前のタイムライン アクティビティが表示されます。

私は終了アプリケーションに次のコードを使用します

 exit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            finish();
       Intent intent = new Intent(Intent.ACTION_MAIN);
                                intent.addCategory(Intent.CATEGORY_HOME);
                                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                startActivity(intent);

        }
    });

もう一度終了すると、変更されたタイムラインが表示されます。アプリケーションを終了するときにすべてのアクティビティをクリアしたいです。終了後に以前のアクティビティを保持できません。今私は何ができますか?私に提案をしてください..

4

3 に答える 3

2

出口では、

exit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
               Intent intent = new Intent(getApplicationContext(),TimeLine.class); //This will finish all activities except TimeLine
                            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                            intent.putExtra("exit", true);
                            startActivity(intent);

    }
});

タイムラインの OnCreate で、

if(getIntent().getBooleanExtra("exit", false))
 finish(); //This will finish your main activity
于 2013-01-23T12:22:02.903 に答える
0

マニフェストファイルのアクティビティにnoHistory="true"を使用できます

于 2013-01-23T12:24:34.510 に答える
0

ただし、 this.finish() を使用すると機能します。すべての意図を削除して、「this.finish()」を使用してください。きっとうまくいくでしょう。うまくいかない場合は、finish() の後に System.exit(0) を使用してください。

于 2013-01-23T12:20:44.917 に答える