Android:如何使用附加功能从其他活动启动待定意图?

时间:2012-04-18 04:42:46

标签: android android-intent android-pendingintent extra

我面临着待处理意图的一些问题。我使用Notification Manager设置了一些Pending Intents。这些通知在用户单击它们时启动活动。我在待处理的意图中使用了一些额外的Intent。单击通知即可正常工作。

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);

但我的问题是我想从另一个活动中启动这些待处理的意图。待定意图已创建。我如何从其他活动中获取这些未决意图?如何获得使用待定意图设置的额外内容?

请帮帮我。

2 个答案:

答案 0 :(得分:3)

我认为你在这里有2件:

  1. 尝试使用我在Keeping track of sms sent in Android给出的答案:在创建FILL_IN_SELECTOR时添加PendingActivity标记,以强制它随身携带额外内容。
  2. 获得PendingIntent后,您只需拨打send方法即可启动它。

答案 1 :(得分:0)

您可以先在Intent中添加数据,然后再使用PendingIntent

将其传递给它

首先创建一个意图并添加数据

    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

            }