【问题标题】:Finishing activities in android在android中完成活动
【发布时间】:2014-07-15 12:10:51
【问题描述】:

我有一个奇怪的问题..当用户通过按下按钮退出应用程序时,我使用的代码只完成一次所有活动..但如果该活动被创建多次,则它只完成一次。 . 我可以检查创建活动的次数并销毁它们,以便在按下后退按钮时用户找不到任何活动 代码在这里

if(ActivityA.instanceA != null) {
    try {  
        Activity.instanceA.finish(); 
    } catch (Exception e) {}
}

【问题讨论】:

  • 为什么会出现这个问题,你是在使用碎片吗??
  • 为什么要完成一项活动?
  • 不,我没有使用片段
  • 一般来说,您不会明确地完成活动,除非您特别需要在 onDestroy 事件中执行操作以进行最终清理。或者,如果您需要从中返回结果,您可以完成一项活动。理想情况下,平台会自行处理活动。
  • 实际上我提供了注销功能..当用户单击注销按钮时,它会将他带到登录屏幕..但是当他按下后退按钮时,他会激活所有活动..那不行..所以我必须做这样的事情#sreekanth

标签: android android-activity instance


【解决方案1】:

调用新Activity时需要为Intent添加flags。

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

以上行表示YourCurrentActivity之上的所有Activity都被清除了。

您可以在 Manifest 文件中为您的每个活动添加此属性。

android:noHistory="true"
android:clearTaskOnLaunch="true"

【讨论】:

  • 我这样做了..但它没有帮助我:(
  • @SparrOw 在每个创建的活动中??
  • @SparrOw 然后你需要为所有活动做。并检查我编辑的答案。
  • cool .. 好吧,你的意思是说我必须为每一个活动和每一个意图在我的应用程序中启动一个新活动做这个?
  • @SparrOw 是的,现在你明白我对你说的意思了。
【解决方案2】:
Intent i = new Intent(AboutApp_Activity.this,
                        Home_Activity.class);
                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                        | Intent.FLAG_ACTIVITY_NEW_TASK);

                startActivity(i);
                finish();
                overridePendingTransition(R.anim.slide_in_right,
                        R.anim.slide_out_right);

【讨论】:

  • #Digvesh !什么是“动画”?
  • 忽略那条孔线
  • 我忽略了那行但是当我按下返回按钮时..所有活动都还活着..
  • 我没有足够的经验..这是我的第一个应用程序..你能告诉我如何在清单中添加这一行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 2011-06-13
  • 2012-03-22
  • 1970-01-01
相关资源
最近更新 更多