Android 小部件单击返回最后一个活动

Android 小部件单击返回最后一个活动,android,android-widget,Android,Android Widget,当我点击我的应用程序小部件,而不是回到我打开的最后一个活动(进入主屏幕时),Android会从头开始重新启动我的应用程序 有没有办法让点击的行为完全像我的应用程序图标,或者像“最近的应用程序管理器” 下面是我如何实现小部件的: public class WidgetLauncher extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetMa

当我点击我的应用程序小部件,而不是回到我打开的最后一个活动(进入主屏幕时),Android会从头开始重新启动我的应用程序

有没有办法让点击的行为完全像我的应用程序图标,或者像“最近的应用程序管理器”

下面是我如何实现小部件的:

public class WidgetLauncher extends AppWidgetProvider {
@Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

        final int N = appWidgetIds.length;

        for (int i=0; i<N; i++) {
            int appWidgetId = appWidgetIds[i];
            Intent active = new Intent(context, COPD_Main.class);
            active.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, active, 0);
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.launch_support);
            views.setOnClickPendingIntent(R.id.launch_support_launcher, pendingIntent);

            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    }
}
公共类WidgetLauncher扩展了AppWidgetProvider{
@凌驾
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;

对于(int i=0;i我认为问题在于您正在使用的意图标志。请尝试使用:

active.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
新任务的isntead

从:

如果已设置,则如果活动已在运行,则不会启动该活动 历史堆栈的顶部


我认为问题在于您正在使用的意图标志。请尝试使用:

active.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
新任务的isntead

从:

如果已设置,则如果活动已在运行,则不会启动该活动 历史堆栈的顶部


谢谢@verybadalloc,解决了问题。谢谢@verybadalloc,解决了问题。