博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android】【转】Android程序退出彻底关闭进程的方法
阅读量:6471 次
发布时间:2019-06-23

本文共 1510 字,大约阅读时间需要 5 分钟。

    因为发现光调用finish()方法后 程序中所启动的线程依旧在后台运行——Android的特点之一——否则也不会出现诸多用于关闭进程的工具。搜索了相关资料,大致有以下几种方法可以用于完全关闭进程的方式。其中第一种方法作者已经用过,的确是可行的。

    第一种方法:

android.os.Process.killProcess(android.os.Process.myPid());

 

    第二种方法:在onDestroy函数中加入代码

System.exit(0);
 

    第三种方法:

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

 

      第四种方法:

manager.restartPackage(package);
 

    第五种方法:

Intent MyIntent = new Intent(Intent.ACTION_MAIN); MyIntent.addCategory(Intent.CATEGORY_HOME); startActivity(MyIntent); finish();

    这个方法好像只是退回到桌面…

 

    第六种方法:使用广播机制

public abstract class EnterActivity extends BaseActivity {  ...      // 写一个广播的内部类,当收到动作时,结束activity      private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {          @Override          public void onReceive(Context context, Intent intent) {              close();              unregisterReceiver(this); // 这句话必须要写要不会报错,不写虽然能关闭,会报一堆错          }      };        @Override      public void onResume() {          super.onResume();            // 在当前的activity中注册广播          IntentFilter filter = new IntentFilter();          filter.addAction(Attribute.PAGENAME);          registerReceiver(this.broadcastReceiver, filter); // 注册      }        /**      * 关闭      */      public void close() {          Intent intent = new Intent();          intent.setAction(Attribute.PAGENAME); // 说明动作          sendBroadcast(intent);// 该函数用于发送广播          finish();      }  ...  }

    请注意,这段代码中缺少了注销代码,(unregisterReceiver)这个是必须要加的。

 

参考来源:

转载地址:http://utpko.baihongyu.com/

你可能感兴趣的文章
Eclipse C + GTK2.0环境构筑
查看>>
caffe solver
查看>>
Rhel6-heartbeat+lvs配置文档
查看>>
[CF340D]Bubble Sort Graph/[JZOJ3485]独立集
查看>>
ORACLE分科目统计每科前三名的学生的语句
查看>>
第一次冲刺--查看活动详情用户场景分析
查看>>
0317复利计算的回顾与总结
查看>>
函数对象
查看>>
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q70-Q72)
查看>>
最全最新个税计算公式---今天你税了吗?
查看>>
linux shell 正则表达式(BREs,EREs,PREs)差异比较(转,当作资料查)
查看>>
MongoDB--CSharp Driver Quickstart .
查看>>
#pragma mark 添加分割线 及 其它类似标记 - 转
查看>>
遗传算法实现自动组卷、随机抽题 (转)
查看>>
二分法求平方根(Python实现)
查看>>
使用startActivityForResult方法(转)
查看>>
so在genymotation中错误问题
查看>>
Visual Studio 原生开发的10个调试技巧(二)
查看>>
U3D版本《暗黑世界V1.0》编译——图文教程!
查看>>
系统广播 android.intent.action.KILL_BACKGROUND_SERVICE
查看>>