【问题标题】:Replace the normal intent with pending将正常意图替换为待处理
【发布时间】:2015-08-17 13:34:52
【问题描述】:

有一个活动正常启动:

intent = new Intent(CheckOutActivity.this, LiveStatusActivity.class);
startActivity(intent);
finish();

LiveStatusActivity 是最新的活动,由 CheckOutActivity 启动。 现在假设 LiveStatusActivity 位于 Activity 堆栈的顶部。

同时,我正在对收到的通知开始一个未决的意图,

Intent in = new Intent(this, LiveStatusActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
contentIntent = PendingIntent.getActivity(this, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);

在待处理的意图活动中,应更新/替换之前由另一个活动启动的 LiveStatusActivity。

现在,LiveStatusActivity 已启动(通过挂起的意图),并且另一个相同的活动仍在其后面。

即。 LiveStatusActivity(top t by pending intent)-----> LiveStatusActivity(t-1 by checkoutactivity)---->.....

尝试了各种标志,在 S.O 检查了很多答案,但都是徒劳的。 我也尝试输入android:launchMode="singleTask",结果相同。

【问题讨论】:

    标签: android android-intent android-pendingintent


    【解决方案1】:
      make your LiveStatusActivity as android:launchMode="singleTask" in manifest.xml
    
    
      and in your LiveStatusActivity override the onNewIntent(Intent intent) method
      So when it will be called second time this onNewIntent() will be called and inisde that you can update your Activity.
    

    也删除此标志 in.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多