mPaaS工程如何实现点击返回键退出应用并杀死进程?

讲解问题:

开发金融APP过程中,我们进场需要做一个功能,当点击返回键时,弹出dialog,询问“您是否确定退出应用”?此时mPaaS项目应如何正确退出应用并杀死进程?

非mPaaS项目解决办法:

如果是原生Android工程,我们可直接调用以下代码退出应用:

Process.killProcess(Process.myPid());
System.exit(0);

但mPaaS项目下,包含三个进程:

1.main(主进程)

2.push(自建渠道推送进程)

3.tools进程

如果在mPaaS项目下,调用以上方式,可能会导致push和tools进程在再次打开应用时,未能刷下进程或启动。

push进程未正确启动时,会导致自建渠道无法获取推送标识,推送无法正常使用。

tools进程未正确启动时,会导致框架基础功能受损。

如果是mPaaS项目应如何解决?

mPaaS应用在点击返回键,退出应用时,我们需要杀死main、push和tools三根进程,以保证下次打开应用时,推送和框架功能使用正常。

调用如下方式正确退出应用并杀死进程:

ActivityManager activityManager = (ActivityManager) ContextHolder.getContext().getSystemService(Context.ACTIVITY_SERVICE);
 if (activityManager != null) {
                    if (!PrivacyUtil.NEW_PRIVACY || PrivacyUtil.isUserAgreed(context)) {
                        //先杀掉其它所有进程
                        List<ActivityManager.RunningAppProcessInfo> processInfoList = activityManager.getRunningAppProcesses();
                         if (processInfoList != null) {
                             String packageName = LoggerFactory.getProcessInfo().getPackageName();
                             for (ActivityManager.RunningAppProcessInfo processInfo : processInfoList) {
                                 if (myPid != processInfo.pid && processInfo.processName.startsWith(packageName)) {
                                    Process.killProcess(processInfo.pid);
                                     TraceLogger.w(TAG, "kill process " + processInfo.processName);
                                 }
                             }
                         }
                     }
                 }
Process.killProcess(Process.myPid());
System.exit(0);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值