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

背景:
在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 5
do
usleep 200000
#获取当前top的activity
top_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
    break
fi
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值