从通知输入正在运行的应用程序时,如何完成当前活动

时间:2014-12-12 17:52:07

标签: android

在我的应用中,我有一个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);
}

2 个答案:

答案 0 :(得分:1)

您可以将标记Intent.FLAG_ACTIVITY_SINGLE_TOP添加到将Intent打开Activity的{​​{1}}。

然后,您可以检查Activity.onNewIntent(Intent)方法,以执行您需要执行的操作。

我希望指出你正确的方向。

答案 1 :(得分:1)

通知将"输入"您通过onNewIntent()方法开展的活动。因此,只需在那里制定条件,检查意图是否来自通知,然后做出相应的反应: - )