У меня есть деятельность, в OnCreate:андроид ICS: перезапуск службы вешают на intent.getExtras()
serviceIntent = new Intent(this, MyServ.class);
int templen = myString.length();
Log.i("check", "mystring"+templen);
serviceIntent.putExtra("myString", myString);
startService(serviceIntent);
В службе,
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
myString = intent.getExtras().getString("myString");
return START_STICKY;
}
Он работает отлично. Затем я открыл много приложений, чтобы андроид закрыл мои приложения/службы, чтобы освободить некоторый баран. Как и следовало ожидать, с помощью START_STICKY служба попытается перезапустить, однако она не смогла перезапустить. Журнал ошибок:
Вызванный: java.lang.NullPointerException на com.example.myapp.myserv.onStartCommand (MyServ.java:77), что указывает на этой линии:
myString = intent.getExtras().getString("myString");
Так я верю, что нет намерения, отправленного из myact при перезапуске службы. Как я должен обрабатывать этот случай? благодаря
Я пытался понять ваши советы словом. «если процесс этой службы убит во время ее запуска». Мое дело: «если процесс этой службы убит после того, как он начал иногда». такой же сценарий? «если этот процесс службы убит, а затем оставьте его в запущенном состоянии»: даже служба убита, она все еще находится в запущенном состоянии? Хотя я не полностью понимаю, я думаю, что смогу справиться с этим, проверив, является ли намерение нулевым, если оно равно null, то служба ничего не делает. Здесь возникает другая проблема: будет ли служба пытаться перезапустить связанную с ней деятельность, которая отправляет намерение на обслуживание? спасибо – manhon
Если вы просто хотите, чтобы Android перезапустил службу после ее убийства, а при перезапуске службы ничего не нужно делать, тогда да, вы можете просто проверить «намерение == null» в 'onStartCommand()' и ничего не делать. Чтобы ответить на другой вопрос: служба не будет автоматически пытаться перезапустить активность, которая отправила намерение службе. Теперь я задам вопрос сам: зачем вам нужно, чтобы ваш сервис работал, если ему нечего делать? –
Фактически, это пользовательский пользовательский сервис-копир. Большое спасибо за ваш ответ. он не вешает сейчас для проверки намерения == null – manhon