Android:如何防止从窗口小部件启动多个活动实例?

Reg*_*_AG 10 android widget android-intent android-activity

重现问题的步骤:

  • 用户启动我的应用程序(根活动的名称:"mainActivity")=> mainActivity的实例A.
  • 他按下主页按钮(mainActivity在后台运行)
  • 他相对于这个应用程序安装小部件
  • 他点击了widget =>显示了一个新的mainActivity实例(实例B)
  • 他点击后退按钮:用户回到活动A(我不想要的东西!活动B应该关闭(实际上,应该关闭整个应用程序))

你知道如何避免这个问题吗?(我在stackoverflow上看到了一些类似的问题但不是我想要的严格意义)

谢谢 !!!!

代码:

public class MyWidgetProvider extends AppWidgetProvider {

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

    // Build the intent to call the service//

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

    Intent openAppIntent = new Intent(context.getApplicationContext(), MainActivity.class);
    openAppIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
    PendingIntent openAppPendingIntent = PendingIntent.getActivity(context, 0, openAppIntent, 0);


    remoteViews.setOnClickPendingIntent(R.id.widgetLinearLayout, openAppPendingIntent);

//// ETC…///

    }
Run Code Online (Sandbox Code Playgroud)

Cra*_*igy 4

尝试使用:

openAppIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)

描述在这里


您还可以使用:

openAppIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
Run Code Online (Sandbox Code Playgroud)

描述在这里