Android - 活动由PendingInent发起

时间:2016-03-09 22:18:17

标签: android android-intent android-pendingintent android-navigation

步骤:

  1. 在应用1中打开活动A.
  2. 活动A引用由App 2创建的待处理意图。
  3. 使用待定意图调用startIntentSenderForResult()。这将打开应用2中的活动B.
  4. 点击主页按钮。
  5. 点击应用1的启动器图标。
  6. 我希望在应用1中看到活动A.相反,我会在应用2中看到活动B.

    以下是我已经尝试过的内容:

    1. 我将FLAG_ACTIVITY_NEW_TASK标志添加到待处理的意图中。这会导致onActivityResult()立即被调用(甚至在启动活动B之前)。
    2. 我将待处理意图中的所有数据复制到常规意图中,并将startIntentSenderForResult()替换为通常的startActivityForResult()。这非常有效。不幸的是,由于系统的设计,我必须使用待定的意图。
    3. 然后我将待处理的意图复制到App 1.所以现在创建待处理意图的应用程序也会使用startIntentSenderForResult()将其触发。这有效!所以问题不在于未决意图本身,而在于它是如何/在何处创建的。这可能是因为PendingIntent.getActivity()
    4. 中使用的上下文

      这是代码。

      待定意图:

      Intent intent = new Intent();
      intent.setComponent(new ComponentName(app2, activityB));
      intent.setAction(ACTION);
      PendingIntent pIntent = PendingIntent.getActivity(context, INTENT_ID, intent, (PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_UPDATE_CURRENT));
      

      关闭未决意图:

      startIntentSenderForResult(intent.getIntentSender(), REQUEST_CODE, null, 0, 0, 0);
      

0 个答案:

没有答案