当我点击我的应用程序小部件时,不是回到我打开的最后一个活动(进入主屏幕),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:我知道有几个问题如下:
但它根本没有解决我的问题。
答案 0 :(得分:1)
我认为问题是你正在使用的Intent标志。尝试使用:
active.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
不是NEW_TASK。
来自docs:
如果设置,则如果活动已在运行,则不会启动该活动 历史堆栈的顶部。