我的应用程序为收到的每条短信创建通知:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(android.R.drawable.stat_sys_warning)
.setContentTitle(context.getString(R.string.notif_title))
.setContentText(sms_from+": "+sms_body);
Intent mIntent = new Intent(context, DialogActivity.class);
mIntent.putExtra("sms_body", sms_body);
mIntent.putExtra("sms_from", sms_from);
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent mPendingIntent =
PendingIntent.getActivity(
context,
0,
mIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(mPendingIntent);
用户点击通知后,当我提取数据时,会打开DialogActivity
:
public class DialogActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String sms_body = getIntent().getExtras().getString("sms_body");
final String sms_from = getIntent().getExtras().getString("sms_from");
它适用于一条短信/通知。但是,如果收到多条短信,则在sms_from
处提取的sms_body
和onCreate
始终包含最后一条短信的文本。我该怎么解决这个问题?
答案 0 :(得分:1)
从PendingIntent中删除标记PendingIntent.FLAG_UPDATE_CURRENT
。
正在做的是使用您正在投放的新值更新先前的意图。
此外,您应为每个新短信使用不同的值(非零)