如何让自己的Android程序永不被系统kill

如何让自己的Android程序永不被系统kill,第1张

简单地说,就是将自己写的Service变成Core Service,即将自己写的程序提升为系统级别的程序,这样在任何情况下它都不会被kill掉。

要想自己写的Service提升为Core Service,应用程序需要设置两个标志:FLAG_PERSISTENT和FLAG_SYSTEM。

具体做法如下:

1 设置FLAG_PERSISTENT:在AndroidManifestxml文件中,加入android:persistent="true" ;

2 设置FLAG_SYSTEM:将你写的应用程序放到/system/app/目录下即可。具体 *** 作如下:

A 连接adb,然后执行如下两条命令:

adb remount

adb push yourapk /system/app/

命令adb remount是为了获取系统目录的临时 *** 作权限,然后使用push命令将自己写的程序包上传到系统应用程序目录中。

B 重启手机。开机后,在应用列表中就可以看到你写的程序了。

需要说明的是:系统程序不能像非系统程序那样使用adb install yourapk来安装apk包,我们只需要将apk包拷贝到/system/app/目录下重启即可。如果使用adb install的方式,那么FLAG_SYSTEM标志不会被设置,FLAG_PERSISTENT标志也将不起任何作用。

C 如果需要卸载自己写的系统应用程序,可执行如下命令:

adb remount

adb shell rm /system/app/yourpackageapk

1、首先使用ps -ef查找进程的执行语句并保留它;这个的目的是保留进程执行的参数不变;

例如重启单个mongodb的过程:

查找:ps -ef|grep mongod

获得:

root 2928 2903 0 14:51 pts/0 00:00:00 grep /usr/local/mongodb/bin/mongod --config /etc/mongodbcnf

2、使用kill -9 PID杀掉该进程;

kill -9 2928

3、使用保留的进程语句重启进程;

/usr/local/mongodb/bin/mongod --config /etc/mongodbcnf

直接调用activity的finish()方法即可关掉当前这个activity在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。Android中,退出应用程序的方式:1通过pidintpid=androidosProcessmyPid();//获取当前应用程序的PIDandroidosProcesskillProcess(pid);//杀死当前进程这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。2通过ActivityManagerActivityManagermanager=(ActivityManager)contextgetSystemService(ACTIVITY_SERVICE);//获取应用程序管理器managerkillBackgroundProcesses(getPackageName());//强制结束当前应用程序这种方式退出应用,会结束本应用程序的一切活动,因为本方法会根据应用程序的包名杀死所有进程包括Activity,Service,Notifications等。

以上就是关于如何让自己的Android程序永不被系统kill全部的内容,包括:如何让自己的Android程序永不被系统kill、如何在应用程序出错后自动kill掉进程并重启、我的android应用被kill掉了,我想查看这条 *** 作的相关记录,请问在系统的什么目录下可以看到历史记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9343209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存