2011-11-24 26 views
0

有没有什么办法可以关闭android应用程序?我不能使用完成,因为它显示以前的活动,我有很多后面的活动(例如从1到2 ..到10和10我想退出应用程序)。如何实现这一目标?有什么办法可以关闭上一次活动的android应用吗?

+0

SO上有类似的问题。这可能会帮助你。 http://stackoverflow.com/questions/2092951/how-to-close-android-application – Sadat

回答

1
Intent intent1 = new Intent(context, Activity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent1); 

CLEAR TOP清除活动栈,可完成重定向

的最后一个活动,如果你的活动堆栈是正确清楚的顶部会为工作,你

选项2:

使用宝来铸造接收器chk link

1

如何使用android:noHistory

无论是否活动应该从活动组中删除,并完成(称为其finish()法),当用户导航远离它,它不再是可见的屏幕上 - “真”,如果它应该完成,如果不是,则为“假”。默认值是“false”。 值为“true”表示活动不会留下历史记录。它不会留在任务的活动堆栈中,所以用户将无法返回到它。

0

可以使用(但不推荐)

System.exit(0);

,或者你可以在后台将您的应用程序(也就是Android的管理方式多任务)

moveTaskToBack(真);

0

广场上的退出按钮按下此代码

Intent intent = new Intent(ExitConfirmationActivity.this, FirstActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 

并配有finish();

1

覆盖初始活动的onResume我也有同样的问题,并没有找到一个方法来definitelly杀死应用程序。但后来我发现这是由系统设计的内在特性造成的。

如果你想关闭一个应用程序,你只需要清除活动堆栈并释放使用资源。这似乎很奇怪,对吧?你应该有权关闭你自己的应用程序。但在Android应用程序中并不推荐它,它不遵循Android指南。而且,不要为用户提供退出选项。对于需要为用户提供“退出选项”的Android应用程序(例如,由于安全原因),我们应该提供一个“注销选项”,清除活动堆栈,免费资源和其他您想要做的事情,但从不杀死主要活动。

清除活动堆栈的解决方案已在其他答案中显示出来:(1)使用标志为FLAG_ACTIVITY_CLEAR_TOP的意图或(2)使用广播。

随着FLAG_ACTIVITY_CLEAR_TOP,你把当前活动的意图:

Intent intent = new Intent(getApplicationContext(), YourMainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

而且随着广播的选项,是从当前活动发送广播到要关闭所有活动。

对于这一点,你必须发送广播(在目前的活动):

Intent broadcastIntent = new Intent(); 
broadcastIntent.setAction("com.package.ACTION_SPECIFICNAME"); 
sendBroadcast(broadcastIntent); 
finish(); 

和接收其他活动这个广播(上要关闭各一个):

IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction("com.package.ACTION_SPECIFICNAME"); 
registerReceiver(new BroadcastReceiver() { 
@Override 
    public void onReceive(Context context, Intent intent) { 
    Log.d("onReceive","Logout in progress"); 
      finish(); 
    } 
}, intentFilter); 

就是这样!我希望这个答案能帮助你。对不起我的英语不好。 我知道这不是您正在等待的答案,但我认为这是当前(和“正确的”)解决方案。

相关问题