2013-01-23 188 views
0

我尝试在我的应用程序中添加主题更改选项。我有一个称为时间轴的主要活动。并且从那里用户可以去themechange活动可以更改theme.It更改themechange活动的主题,但不是时间表,即mainactivity.When我再次加载时间线活动,我可以看到chnage。Android活动完成

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

     } 
    }); 

,如果我再离开,我可以看到的变化timeline.I要清除所有的活动还当我退出application.I不能保留退出后,之前的任何活动。现在我可以做什么?请给我一个建议..

+0

使用:**公共无效的onClick (View v){ finish(); System.exit(0); } ** – Shiv

回答

0

但是,如果你使用this.finish()它的工作原理。删除所有的意图,只使用“this.finish()”。当然它 将工作。如果它不工作,那么在finish()之后使用System.exit(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 
0

您可以使用noHistory = “真” 的清单文件,你的活动