Ste*_*ler 5 service android android-intent
我想模拟android杀戮并重新启动我的服务,以测试当我收到空意图时我会发生什么以及清理/恢复需要做什么.这可能吗?
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!
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我读了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
Run Code Online (Sandbox Code Playgroud)
在此阶段,使用以下命令杀死该进程:
adb shell ps | grep <package name> | awk '{print $2}' | xargs adb shell run-as <package name again> kill
Run Code Online (Sandbox Code Playgroud)
服务立即重新启动(注意新的进程 ID 以及意图为空的事实):
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |