Android活动完成

时间:2013-01-23 12:13:21

标签: android android-intent android-activity exit

我尝试在我的应用程序中添加主题更改选项。我有一个名为timeline的主要活动。从那里用户可以去主题更改活动可以更改主题。它更改主题更改活动的主题但不更改时间轴即主要活动当我再次重新加载时间线活动时,我可以看到chnage。

然后我添加以下代码以在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);

        }
    });

并且效果很好。

但是,当我退出我的应用程序并重新开始时,我可以看到时间轴的活动,这是在themechage之前。

我使用以下代码退出申请

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

        }
    });

如果我再次退出,我可以看到更改的时间轴。我想在退出我的应用程序时清除所有活动。我退出后不能保留任何先前的活动。现在我该怎么办?请给我一个建议..

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

但是如果你使用this.finish()它会工作。移除所有意图并使用" this.finish()"。当然可以 将工作。如果它不起作用,则在finish()之后使用System.exit(0)。

答案 2 :(得分:0)

您可以在清单文件中使用noHistory =“true”