sig*_*ger 7 android android-intent
我们看到一个问题,我们的一个intent服务意外地null为我们的一些用户检索了一个String extra.我们无法重现这一点,并且我们不知道受影响用户的设备上是否随机或一致.受影响的用户与设备类型或Android版本之间似乎没有相关性.
我正在扩展IntentService和实现这样的handleIntent方法:
@Override
public void handleIntent(Intent intent) {
String action = intent.getAction();
if (action.Equals(ACTION_MARK_UNREAD)) {
String messageKey = intent.getStringExtra(EXTRA_MESSAGE_KEY);
// messageKey is null for some users
}
}
Run Code Online (Sandbox Code Playgroud)
有字段:
public static final String ACTION_MARK_UNREAD = "com.myapp.action.MARK_UNREAD";
public static final String EXTRA_MESSAGE_KEY = "extraMessageKey";
Run Code Online (Sandbox Code Playgroud)
在片段中,我们快速连续启动此服务6次:
for (int i = 0; i < 6; i++) {
Intent i = new Intent(MyIntentService.ACTION_MARK_UNREAD);
i = i.setClass(mContext, MyIntentService.class);
i.putExtra(MyIntentService.EXTRA_MESSAGE_KEY, i.toString());
mContext.startService(i);
}
Run Code Online (Sandbox Code Playgroud)
任何想法,为什么服务将获取null的messageKey额外?
我们在应用程序中有其他区域启动此相同的服务,当发生这种情况时,我们无法确定它来自哪个区域.但是,通过查看日志,它似乎来自我提到的这个片段.日志显示发生的客户端时间戳null是上一次发生后的几秒钟.这可能是因为服务队列移动缓慢,或者我的假设可能是错误的.
小智 1
你会尝试吗?
for (int y = 0; y < 6; y++) {
Intent i = new Intent(MyIntentService.ACTION_MARK_UNREAD);
i = i.setClass(mContext, MyIntentService.class);
i.putExtra(MyIntentService.EXTRA_MESSAGE_KEY, y.toString());
mContext.startService(i);
}
Run Code Online (Sandbox Code Playgroud)
可能是编译器问题...
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |