我在主要活动和发送广播意图的后台服务中创建了一个广播接收器。每次我尝试运行应用程序时它都会崩溃,并且日志会显示以下错误消息:
10-04 13:30:43.218: ERROR/AndroidRuntime(695): java.lang.RuntimeException: 在 com.client 中接收广播 Intent { action=com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE (有附加功能)时出错。 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>
如果有人能解释为什么日志显示上面的消息并且应用程序崩溃,我将不胜感激。
谢谢!