android中真正全部退出程序

发布于 2022-10-15 05:46:59 字数 2744 浏览 19 评论 0

android中真正全部退出程序
有时我们的软件界面中有退出的功能,不能用Activity中的finish()了事,因为有时你的应用中有多个Activity,我在网上搜了如何完全退出应用,不外乎三种方法:

1 使用ActivityManager的killBackgroundProcesses方法,这种方法还要加应用权限,且不是所有版本SDK中通用,相关代码如下:

  1. ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
  2. manager.killBackgroundProcesses("package");

复制代码2 杀进程:

使用android.os.Process.killProcess(android.os.Process.myPid());或者System.exit(0);

3 还是使用ActivityManager的restartPackage方法:

  1. manager.restartPackage("package");

复制代码不知道为何,我都是不成功,后来使用广播机制终于可以了,如果有朋友也和我一样,以上方法都不灵,试试广播机制,也不需要什么权限。做法奉上:

1、先写一个父类继承Activity,其他的Activity都继承此父类,重要的两个方法如下:

view sourceprint?

  1.   private BroadcastReceiver broadcastReceiver = new BroadcastReceiver()  
  2. {  
  3.   
  4.     @Override
  5.     public void onReceive(Context arg0, Intent arg1) {  
  6.         // TODO Auto-generated method stub  
  7.         finish();  
  8.     }  
  9.       
  10. };  
  11.    
  12. @Override
  13. protected void onResume() {  
  14.     // TODO Auto-generated method stub  
  15.     super.onResume();  
  16.     IntentFilter filter = new IntentFilter();  
  17.     filter.addAction("ExitApp");  
  18.     this.registerReceiver(broadcastReceiver, filter);  
  19. }

复制代码当然你也可以每个Activity都写以上的代码。

1、然后在需要退出的Activity中添加如下方法:

view sourceprint?

  1. //发送广播通知所有窗体关闭  
  2.    public void close()  
  3. {  
  4.     Intent intent = new Intent();  
  5.     intent.setAction("ExitApp");  
  6.     this.sendBroadcast(intent);  
  7.     super.finish();  
  8. }

复制代码需要退出时调用一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文