单击主页按钮后如何将活动恢复到前面(通过通知)

时间:2016-04-12 09:25:47

标签: android android-intent

我有一个播放视频的VideoActivity,我试图实现的是当我点击主页按钮时,我会显示一个通知,一旦我点击通知,它将把VideoActivity实例带回到前面。

这是我为通知定义意图的方式:

Intent notificationIntent = new Intent(context, VideoActivity.class);
        notificationIntent.addFlags( Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

但每次点击通知时,都会发现会创建一个新的VideoActivity。

3 个答案:

答案 0 :(得分:1)

使用它,因为它也会以更优雅的方式做同样的事情(没有任何副作用)

  final Intent notificationIntent = new Intent(context, YourActivity.class);
  notificationIntent.setAction(Intent.ACTION_MAIN);
  notificationIntent.setFlags(FLAG_ACTIVITY_NEW_TASK);
  notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);

你也可以使用它

<activity 
  android:name=".YourActivity"
  android:launchMode="singleTask"/>

singleTask的描述

The system creates a new task and instantiates the activity at the root of the
new task. However, if an instance of the activity already exists in a separate
task, the system routes the intent to the existing instance through a call to 
its onNewIntent() method, rather than creating a new instance. Only one 
instance of the activity can exist at a time.

答案 1 :(得分:0)

你应该试试这个。

    Intent notificationIntent = new Intent(context, VideoActivity.class);     
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 2 :(得分:0)

你必须让你的活动单一任务意味着当它已经运行或处于后台状态时,不应该创建它的新实例,并且应该将已经运行的活动放在前面。

在AndroidManifest.xml

你宣布你的活动添加

机器人:launchMode = “singleTask”

在您的活动条目中。