2012-03-05 64 views
2

我正在开发android中的应用程序。我是Android新手。 在我的应用程序中,我有一个来自该用户的类别选择活动必须检查一个复选框,基于他将在另一个屏幕上查看。我有一个菜单按钮在第三屏幕中,我有一个按钮来选择类别,当我点击该按钮时,它也可以正常工作,但是当我点击后退按钮时,它会在相同的活动中重定向我2次...如何删除此问题?我用finish()的方法,但它也造成问题,其get是我从应用程序直接... 我想重定向到评选活动中,当我点击后退按钮它不应该告诉我2次....从堆栈中移除活动

是有任何方式请重新导向我谢谢你。

回答

3

打电话给finish()应该工作,所以你应该检查你的代码多次调用错误的方法或类似的东西。

Intent intent = new Intent(activity, activityClass.class); 
activity.startActivity(intent); 
finish(); 

你也应该看看的Intent标志:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
1

您的问题不够清楚,我不知道这是否可以解决您的问题,但如果您在Activity的中包含以下属性,那么归因于Activity将永远不会出现在您的历史记录列表中。

android:excludeFromRecents="true" 
     android:noHistory="true" 

至于从历史中删除的东西,我不知道该怎么做,但我对这个答案感兴趣!

1

在致电Intent之前,您应该致电完成并转到下一个活动。所以当前的任务已经完成,并且不会保存在堆栈中,然后您的意图就会成为堆栈顶层。如果您直接想要转到选择活动,请覆盖onBackPressed()并意图转到您想要转到的活动。