从小工具中运行活动不会被带到前面

时间:2012-04-05 22:42:15

标签: android android-intent android-widget android-activity

我有一个主屏幕小部件,它有一个图标,如果它已准备好运行,它会启动/构建以将应用程序活动带到堆栈的前面。

它会破坏活动,如果它已经在运行,而我不想要它 - 当它点击的小部件时,只需从主屏幕将其恢复到视野中。

我已经尝试了所有可能的旗帜而没有占上风:FLAG_ACTIVITY_REORDER_TO_FRONT,FLAG_ACTIVITY_BROUGHT_TO_FRONT,FLAG_ACTIVITY_NEW_TASK等......

app是min API是13,开发设备是API 16(真的!)。任何想法或我有什么不对吗?日Thnx!

public class AndaeroWidget extends AppWidgetProvider
{
 . . .//Some stuff . . .

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds)
    {
    super.onUpdate(context, appWidgetManager, appWidgetIds);

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.home_widget);
    // When we click the widget, we want to open our main activity.
    Intent launchActivity = new Intent(context, MainActivity.class);
    launchActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, launchActivity, 0);
    remoteViews.setOnClickPendingIntent(R.id.widget, pendingIntent);;

    ComponentName thisWidget = new ComponentName(context, AndaeroWidget.class);
    AppWidgetManager manager = AppWidgetManager.getInstance(context);
    manager.updateAppWidget(thisWidget, remoteViews);
    }
. . .
}

1 个答案:

答案 0 :(得分:2)

将清单中的MainActivity launchMode设置为singleInstance。

机器人:launchMode = “singleInstance”