在onStartCommand of Service中检索Intent的旧值

时间:2015-02-03 10:07:44

标签: android android-intent nullpointerexception android-service

内容:

关于如何在Intent方法中检索(或保留onStartCommand信息,我有一点问题。

SCENE:

我的MainActivity使用 String 值启动服务...

Intent intent = new Intent(this, Service.class);
intent.putExtra("key", getIntent().getStringExtra("key"));
startService(intent);

...然后我的Service使用此Intent值 - intent.getStringExtra("key") - 用于某些事情。

问题:

但是......问题是当用户(或系统)从内存中删除活动并且我的服务重新启动时,Intent 将为空。 ( START_STICKY

Problem; the user removes the application from memory

我想用Preferences来解决这个问题,但是......我不喜欢这样。

有谁知道解决这个问题的好方法?也许我有一个概念问题但我不知道呢?

1 个答案:

答案 0 :(得分:4)

START_STICKY无法解决您的问题,因为在重新启动您的服务后,系统不会重新发送您的意图,在您的情况下它将为空。 要获得以前的意图,您需要从服务的START_REDELIVER_INTENT返回onStartCommand

有关详细信息,请参阅this

希望这能解决你的问题......