【发布时间】:2010-12-03 17:24:44
【问题描述】:
我在主要活动和发送广播意图的后台服务中创建了一个广播接收器。每次我尝试运行应用程序时都会崩溃,并且日志会显示以下错误消息:
10-04 13:30:43.218: 错误/AndroidRuntime(695): java.lang.RuntimeException:错误 接收广播意图{ action=com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE (有额外的)}在 com.client.gaitlink.GaitLink$LoginStatusReceiver@431690e8
从CommunicationService类发送广播消息,方法如下:
private void announceLoginStatus(){
Intent intent = new Intent(LOGIN_STATUS_UPDATE);
intent.putExtra(SERVER_MESSAGE, mServerResponseMessage);
intent.putExtra(SESSION_STRING, mSessionString);
sendBroadcast(intent);
}
在哪里
String LOGIN_STATUS_UPDATE = "com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE"
在主要活动中定义了以下广播接收器:
public class LoginStatusReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String serverMessage = intent.getStringExtra(CommunicationService.SERVER_MESSAGE);
String sessionString = intent.getStringExtra(CommunicationService.SESSION_STRING);
userInfo.setSessionString(sessionString);
saveSettings();
}
}
并在 onResume 方法中注册:
IntentFilter loginStatusFilter;
loginStatusFilter = new IntentFilter(CommunicationService.LOGIN_STATUS_UPDATE);
loginStatusReceiver = new LoginStatusReceiver();
registerReceiver(loginStatusReceiver, loginStatusFilter);
清单文件包括以下内容:
<activity android:name=".GaitLink"
android:label="@string/app_name">
<intent-filter>
...
<action android:name="com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE" />
</intent-filter>
</activity>
如果有人能解释为什么日志显示上面的消息并且应用程序崩溃,我将不胜感激。
谢谢!
【问题讨论】:
标签: android android-intent broadcastreceiver