我有一个播放视频的VideoActivity,我试图实现的是当我点击主页按钮时,我会显示一个通知,一旦我点击通知,它将把VideoActivity实例带回到前面。
这是我为通知定义意图的方式:
Intent notificationIntent = new Intent(context, VideoActivity.class);
notificationIntent.addFlags( Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
但每次点击通知时,都会发现会创建一个新的VideoActivity。
答案 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”
在您的活动条目中。