窗口小部件单击会返回上一个活动

时间:2013-06-06 09:13:35

标签: android android-widget

当我点击我的应用程序小部件时,不是回到我打开的最后一个活动(进入主屏幕),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:我知道有几个问题如下:

this

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

1 个答案:

答案 0 :(得分:1)

我认为问题是你正在使用的Intent标志。尝试使用:

active.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

不是NEW_TASK。

来自docs

  

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