我从一个应用程序中有几个小部件,当用户单击小部件时,我想打开一个活动,他可以编辑该“注释”。我像这样开始活动:
Intent openCounter = new Intent(context, CounterEditActivity.class);
openCounter.putExtra(CounterEditActivity.COUNTER_ID, counter_id);
openCounter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(openCounter);
当整个应用程序运行时,它可以正常工作(单击主页按钮,单击小部件,单击主页,单击另一个小部件)。
当应用不正在运行时,问题就开始了(它没有显示在任务管理器中)。然后,当您第一次单击窗口小部件时,它会打开正确的活动。但是,如果您单击主页并单击另一个小部件,它将从第一个小部件中打开已在运行的活动。
任何想法如何实现这种行为?
答案 0 :(得分:1)
如果您的目标是在轻触窗口小部件时强制启动新活动,则可能需要添加其他标记:
openCounter.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
请注意,这只能从API级别11开始提供。
如果这没有帮助,请尝试添加
android:launchMode="singleTask"
清单中的CounterEditActivity活动标记,看看是否不会强制启动新活动。