最近在学习APP widget,我设置了APP widget中的一个按钮发送一个广播,在广播的intent中putExtra("appWidgetId", appWidgetIds[i]);把当前的widget的ID传递过去,但在接收到的intent中却得不到该id,部分代码如下:
public class MyAppWidgetProvider extends AppWidgetProvider
{
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
System.out.println("onUpdate");
for(int i=0;i<appWidgetIds.length;i++){
Intent intent=new Intent(context, TargetActivity.class);
Intent intent1=new Intent();
intent1.setAction("MyOwnBroadcast");
//把widget的ID放到了intent中,我把第二个参数写成固定的数值,在onreceiver中仍然得不到该值
intent1.putExtra("appWidgetId", appWidgetIds[i]);
PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent, 0);
PendingIntent pendingIntent1=PendingIntent.getBroadcast(context, 0, intent1, 0);
RemoteViews remoteView=new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
remoteView.setOnClickPendingIntent(R.id.btn1, pendingIntent1);
remoteView.setOnClickPendingIntent(R.id.iv1, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds[i], remoteView);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
public void onReceive(Context context, Intent intent) {
if(intent.getAction()=="MyOwnBroadcast"){
//获取intent,但打印出的都是-1。
int temp=intent.getIntExtra("appWidgetId", -1);
System.out.println("appWidgetId--->"+temp);}
super.onReceive(context, intent);
}
}
------解决方案--------------------
最近在学习APP widget,我设置了APP widget中的一个按钮发送一个广播,在广播的intent中putExtra("appWidgetId", appWidgetIds[i]);把当前的widget的ID传递过去,但在接收到的intent中却得不到该id,部分代码如下:
我也不会,帮你顶一下。。。