如何使用小部件的不同附加功能打开相同的活动

时间:2014-04-16 10:30:03

标签: android android-activity android-widget android-pendingintent

我正在处理小部件,这些小部件有助于用户显示重要数据并从小部件中打开应用程序。

我的小部件有3个按钮,当用户点击不同按钮时我需要打开应用程序。 我需要打开相同的活动,但根据用户点击的按钮使用不同的数据。我已经通过意图传递了不同的额外内容

例如

Ist按钮我将用户名设置为“Ranjith”

并且对于第二个按钮,我将用户名设置为“Thomas”

和第3个按钮“Rixon”

但是当活动打开时,它总是将Rixon显示为第三个。

         logIntent= new Intent(context, MainActivity.class);
            earnIntent=new Intent(context, MainActivity.class);
            connectIntent=new Intent(context, MainActivity.class);
            logIntent.putExtra("user_name", "Ranjith");
            connectIntent.putExtra("user_name", "Thomas");
            earnIntent.putExtra("user_name", "Rixon");
    }
    remoteViews.setOnClickPendingIntent(R.id.bottom_of_widget_log,createPendingIntent(context, 0, logIntent));
        remoteViews.setOnClickPendingIntent(R.id.bottom_of_widget_earn, createPendingIntent(context, 1, earnIntent));
        remoteViews.setOnClickPendingIntent(R.id.bottom_of_widget_connect, createPendingIntent(context, 2, connectIntent));
    AppWidgetManager manager = AppWidgetManager.getInstance(context) ;
manager .updateAppWidget(thisWidget, remoteViews);

1 个答案:

答案 0 :(得分:0)

您必须检查清单中有关活动的android:launchMode选项。

Documentation中所说,

  

具有“标准”或“singleTop”启动模式的活动可以多次实例化[....]   相比之下,“singleTask”和“singleInstance”活动只能开始一项任务。它们始终位于活动堆栈的根部。此外,设备一次只能保存一个活动实例 - 只有一个这样的任务。