Android:如何从另一个带有额外信息的活动中启动待处理意图?

3

我遇到了一些有关待定意图的问题。 我使用通知管理器设置了一些待定意图。 当用户单击通知时,这些通知会启动一个活动。 我在使用待定意图时还添加了一些额外的参数。 这对于通知点击可以正常工作。

Notification notification = new Notification(icon, tickerText, when);
    Context context = getApplicationContext();

Intent intentOptionDialog = new Intent(Safety_Check_Service.this, Dialog_Safety_Check.class);
    intentOptionDialog.putExtra("startID",startId);
    intentOptionDialog.putExtra("CheckInID", CheckInId);
    intentOptionDialog.putExtra("Frequency", Frequency);
    intentOptionDialog.putExtra("flagFirstShedule", true);

        stopID = (startId + 17);

    intentOptionDialog.putExtra("stopID", stopID);

    PendingIntent contentIntent = PendingIntent.getActivity(Safety_Check_Service.this, DIALOG_ID, intentOptionDialog, 0);

但我的问题是,我想从另一个活动中启动这些待处理的意图。这些待处理的意图已经创建好了。如何从另一个活动中启动这些待处理的意图,并且如何获取与待处理意图一起设置的额外信息?

请帮帮我。


1
请查看此文章:http://iserveandroid.blogspot.com/2011/03/how-to-launch-pending-intent.html - Zaz Gmy
我看到了这个。但是在服务中,我没有待处理意图的对象,因此无法访问它。我必须创建一个新的。 - Vipul Purohit
2个回答

5

我认为这里有两个要点:

  1. 尝试使用我在 Keeping track of sms sent in Android 给出的答案:创建 PendingActivity 时添加 FILL_IN_SELECTOR 标志,以强制携带所需的额外信息。
  2. 一旦您拥有了 PendingIntent,只需调用 send 方法即可触发它。

0

在使用PendingIntent传递数据之前,您可以在Intent中添加数据

首先创建一个Intent并添加数据

    val pendingIntent = Intent(context, MainActivity::class.java)
    pendingIntent.putExtra(PAGE_KEY, HOME.name)

现在使用标志PendingIntent.FLAG_UPDATE_CURRENT从该意图创建挂起意图以进行更新。

       PendingIntent.getActivity(
                    context, 0, pendingIntent, PendingIntent.FLAG_UPDATE_CURRENT)

现在在启动的活动 onCreate 方法中可以像这样访问它

  if (intent != null) {
            val pageValue: String? = intent.getStringExtra(PAGE_KEY)
            pageValue?.let {
             // do whatever you want

            }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接