0
我一直在玩弄如何從我的BroadcastReceiver在我的主類中啓動新的意圖。謝天謝地,經過多次嘗試和從SO的幫助我成功地觸發了onNewIntent()。但是,我需要將數據傳遞給意圖,以便我可以使用它。下面你會看到我的BroadcastReceiver中的代碼啓動了intent和處理我的主類的意圖的代碼。預期的結果是打印出來的BroadcastReceiver傳遞的值,而不是,我得到一個空例外。我已經放置了一個斷點,並且可以驗證intent和getIntent(應該是最初的意圖,而不是從BroadcastReceiver傳入的意圖)是否具有空的額外值。任何幫助都會被處理。從BroadcastReceiver getExtras開始活動爲空
廣播接收器:
Intent intentMain = new Intent(context.getApplicationContext(), MainActivity.class);
intentMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("com.xxx.xxx.FROM", "test");
intent.putExtra("com.xxx.xxx.MSG", "test2");
context.startActivity(intentMain);
onNewIntent():
@Override
protected void onNewIntent(Intent intent) {
Log.d("SmsReceiver", "entered onNewIntent");
super.onNewIntent(intent);
if (intent.getExtras() != null) {
String from = intent.getExtras().getString("com.xxx.xxx.FROM");
String msg = intent.getExtras().getString("com.xxx.xxx.MSG");
}
}
您的意圖傳遞給'onNewIntent'爲null,請顯示您的錯誤代碼。 – starkshang
您創建'intentMain',但額外添加了'intent.putExtra(「com.xxx.xxx.MSG」,「test2」);',爲什麼有'intentMain'和'intent'? – starkshang
謝謝你的評論,我不能相信我錯過了(這就是你盯着你的代碼幾周哈哈)。它似乎按預期工作,非常感謝你。如果你們中的任何一方希望把你的評論作爲答案,我會很樂意接受它。 – Kyle