1

当我单击我的应用程序小部件时,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);
        }
    }
}

PS:我知道有几个问题,例如:

这个

但它根本没有解决我的问题。

4

1 回答 1

1

我相信问题是您正在使用的 Intent 标志。尝试使用:

active.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

而不是 NEW_TASK。

文档

如果设置,如果 Activity 已经在历史堆栈的顶部运行,则不会启动它。

于 2013-06-06T09:31:20.437 回答