总结:
关于如何在我的Intent
方法中检索(或保留)onStartCommand
信息,我有一个小问题。
场景:
myMainActivity
使用字符串值启动服务…
Intent intent = new Intent(this, Service.class);
intent.putExtra("key", getIntent().getStringExtra("key"));
startService(intent);
…然后我的
Service
使用这个Intent
值-intent.getStringExtra("key")
-来做一些事情。问题是:
但是…问题是当用户(或系统)从内存中删除活动并且我的服务正在重新启动时,
Intent
将为空。(
START_STICKY
)我想用
Preferences
来解决这个问题,但是…我不喜欢这样。有谁知道解决这个问题的好办法吗?也许我有一个概念问题,我不知道?
最佳答案
START_STICKY
无法解决您的问题,因为在重新启动服务时,系统不会重新传递您的意图,而且在您的情况下,它将为空。
要获得先前的意图,您需要从START_REDELIVER_INTENT
返回onStartCommand
服务。
有关更多信息,请阅读this
希望这能解决你的问题…