I want to simulate android killing and restarting my service to test what happens when I receive a null intent and what I need to do with cleanup / recovery. Is this possible?
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!
}
}
Note: I read how-to-simulate-android-killing-my-process. The answers are very useful! But I think my use case is a bit different.
You can use the same method for simulating service kill and restart.
Started the service (onStartCommand
returns START_STICKY), logcat shows:
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
At this stage, used the following command to kill the process:
adb shell ps | grep <package name> | awk '{print $2}' | xargs adb shell run-as <package name again> kill
The service was restarted immediately (note the new process id and the fact that the intent is null):
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With