首先,我尝试了堆栈溢出中提到的所有答案,但没有一个适用于我的应用程序,我知道它很简单,但我无法弄清楚它为什么不起作用。
所以我看到与你分享我的代码,以帮助我。
我正在API 22
上运行。
这是activity
,其中包含textView
来接收通知中的文字。
public class EventDetails extends AppCompatActivity {
public static TextView txtDet;
public String strdet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
onNewIntent(getIntent());
setContentView(R.layout.activity_event_details);
txtDet = (TextView) findViewById(R.id.txtDetail);
Intent MyIntent = getIntent();
strdet = MyIntent.getStringExtra("txtDetails");
txtDet.setText(strdet);
}
我在点击日历日期时使用getStringExtra
传递文字并且效果很好,所以我想使用相同的textView
来接收通知文字,我没有使用其他问题textView
,同时我希望每封通知都收到一个明确的image
。
这是通知activity
,我的名字是AlertReceiver
public class AlertReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int notificationId = intent.getIntExtra("id", -1);
switch(notificationId){
case 1:
createNotification(context, "title1", "event1", "event of today");
break;
case 2:
createNotification(context, "title2", "event2", "event of today");
break;
case 3:
createNotification(context, "title3", "event3", "event of today");
break;
case 4:
createNotification(context, "title4", "event4", "event of today");
break;
}
}
public void createNotification(Context context, String msg, String msgText,String msgAlert){
PendingIntent notificIntent = PendingIntent.getActivity(context, 0, new Intent(context, EventDetails.class), 0);
NotificationCompat.Builder mBuilder=new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.not)
.setContentTitle(msg)
.setTicker(msgAlert)
.setContentText(msgText);
//intent to fire when notification clicked on
mBuilder.setContentIntent(notificIntent);
//how the person will be notified
mBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND);
//cancel notification when clicked in the taskbar
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager= (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}
}
任何建议?
答案 0 :(得分:1)
内部创建通知方法将数据添加到intent。您刚刚点击通知指定应该调用哪个活动。
像这样:
PendingIntent notificIntent = PendingIntent.getActivity(context, 0,
new Intent(context, EventDetails.class).putExtra("txtDetails", yourMsg), 0);