gpt4 book ai didi

android - 模拟安卓查杀重启服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:03 30 4
gpt4 key购买 nike

我想模拟 android 终止并重新启动我的服务,以测试当我收到 null Intent 时会发生什么,以及我需要如何处理清理/恢复。这可能吗?

public MyService extends Service {
@Override
public void onCreate() {
//Do stuff
}

@Override
public void onStartCommand(Intent intent, int flags, int startId) {
if (intent == null) {
//Do stuff for restart
} else {
//Do stuff for normal start
return START_STICKY;
}
}


@Override
public void onDestroy() {
//Cleanup that may never be called!
}
}

注意:我读了 how-to-simulate-android-killing-my-process .答案非常有用!但我认为我的用例有点不同。

最佳答案

您可以使用相同的方法模拟服务终止和重启。

启动服务(onStartCommand返回START_STICKY),logcat显示:

08-13 11:55:38.649 24159-24159/? D/TAG: onCreate()
08-13 11:55:38.650 24159-24159/? D/TAG: onStartCommand: intent is null? false; flags=0; startId=1

在这个阶段,使用了 following command杀死进程:

adb shell ps | grep <package name> | awk '{print $2}' | xargs adb shell run-as <package name again> kill

服务立即重新启动(注意新进程 ID 和 Intent 为空的事实):

08-13 11:55:43.742 24236-24236/? D/TAG: onCreate()
08-13 11:55:43.743 24236-24236/? D/TAG: onStartCommand: intent is null? true; flags=0; startId=2

关于android - 模拟安卓查杀重启服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435456/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com