在我的应用中,我有一个Activity
我只允许一个实例,如果用户离开我finish
。现在,如果用户按下后退按钮或使用导航抽屉尝试导航到其他地方,我会完成该活动或要求他们保存更改然后完成。
我正在实施推送通知,允许用户输入应用并将该活动打开到推送通知数据中指示的记录。但是,如果应用程序已在运行并且用户已打开该活动,那么在打开新实例之前,如何让用户保存更改或完成活动?我是否正确地考虑过这个问题?
编辑:这是我从BroadcastReceiver创建的PendingIntent。
private PendingIntent buildPendingIntent(String type, String number)
{
TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext);
Intent homeIntent = new Intent(mContext, HomeActivity.class);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
stackBuilder.addNextIntent(homeIntent);
Intent queueIntent = new Intent(mContext, QueueActivity.class);
queueIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
queueIntent.putExtra(QueueActivity.TYPE, type);
stackBuilder.addNextIntent(queueIntent);
Intent detailIntent = new Intent(mContext, DetailActivity.class);
detailIntent.putExtra(DetailActivity.DETAIL_NUMBER, number);
detailIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
stackBuilder.addNextIntent(detailIntent);
return stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
}
答案 0 :(得分:1)
您可以将标记Intent.FLAG_ACTIVITY_SINGLE_TOP添加到将Intent
打开Activity
的{{1}}。
然后,您可以检查Activity.onNewIntent(Intent)方法,以执行您需要执行的操作。
我希望指出你正确的方向。
答案 1 :(得分:1)
通知将"输入"您通过onNewIntent()
方法开展的活动。因此,只需在那里制定条件,检查意图是否来自通知,然后做出相应的反应: - )