android中自动杀死后台进程的方法

来源:互联网 发布:淘宝和田玉店铺 编辑:程序博客网 时间:2024/05/28 16:16

背景:
在android中有时需要在某个条件下自动的杀死后台的apk进程,这里假设点击home键的时候,主动的取杀死后台指定的apk进程。以这样的一个场景为例子,来讲解一种方法。

实现步骤:
1.当点击home键的时候,系统会检测到此动作,代码位置为:policy/src/com/android/internal/policy/impl/PhoneWindowManager.java,具体函数: void launchHomeFromHotKey() 。在此处设置一个属性表示,比如为persist.clickhomebutton,设置为1.然后在init.rc中添加相应的属性检测服务。
2.属性服务如下,在init.rc中添加如下内容:
init.rc添加的内容如下:

    on property:persist.clickhomebutton=1        start clearbackapp    service clearbackapp /system/bin/clearbackapp.sh            class clearbackapp            disabled
3.当home键按下的时候,persist.clickhomebutton属性被设置,执行/system/bin/clearbackapp.sh此脚本,脚本的功能就是要杀死后台指定的apk进程,脚本内容如下:
#!/system/bin/sh #桌面apk的activity名字home_activity_name="com.android.launcher/.MainActivity"for i in 1 2 3 4 5dousleep 200000#获取当前top的activitytop_activity=`dumpsys activity | grep mResumedActivity | awk '{print $4}'`#当确定桌面为当前运行的apk,即已经回到桌面的时候,杀死相应的后台apk程序,以包名来指定if [ "$top_activity" = "$home_activity_name" ] ;then    ps | grep com.gbits.atm | awk '{print $2}' | xargs kill -9    setprop ttvmd.clickhomebutton 0    breakfidone
0 0
原创粉丝点击