0
我有通知,並且在點擊通知時應該使用intent來放置值。此值應在其他Activity的BroadcastReceiver中接收。任何幫助如何解決?下面有我的代碼:如何把通知中的額外使用意圖通知BroadCast
public void showNotification(){
Intent intent = new Intent(MainActivity.ACTION_NEW_MSG);
intent.putExtra(MainActivity.MSG_FIELD, "TEST VALUES");
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(getApplicationContext(), MainActivity.class);
intent.setComponent(cn);
sendBroadcast(intent);
contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
notification = new NotificationCompat.Builder(getApplicationContext())
.setCategory(Notification.CATEGORY_PROMO)
.setContentTitle("TEST VALUE")
.setContentText("Please click for")
.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(false)
.setVisibility(1)
.setSubText("Time left: " + millisUntilFinished/1000)
.addAction(android.R.drawable.ic_menu_view, "View details", contentIntent)
.setContentIntent(contentIntent)
.setPriority(Notification.PRIORITY_HIGH)
.setVibrate(new long[]{0}).build();
notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
int notification_id = 666;
notificationManager.notify(notification_id, notification);
}
及以下MainActivity:
private void initReceiver() {
myReceiver = new MyReceiver();
IntentFilter filter = new IntentFilter(ACTION_NEW_MSG);
registerReceiver(myReceiver, filter);
}
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_NEW_MSG)) {
String message = intent.getStringExtra(MSG_FIELD);
Toast.makeText(getApplicationContext(),message, Toast.LENGTH_LONG).show();
Log.e("TESTING", "TESTING");
}
}
}
你使用當前代碼得到了什麼問題? –
我的問題是,我看不到任何吐司,或日誌。在我看來,向Intent提供額外數據存在問題。 – user5523912