我正在处理小部件,这些小部件有助于用户显示重要数据并从小部件中打开应用程序。
我的小部件有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);
答案 0 :(得分:0)
您必须检查清单中有关活动的android:launchMode
选项。
如Documentation中所说,
具有“标准”或“singleTop”启动模式的活动可以多次实例化[....] 相比之下,“singleTask”和“singleInstance”活动只能开始一项任务。它们始终位于活动堆栈的根部。此外,设备一次只能保存一个活动实例 - 只有一个这样的任务。