Tôi nhận được một Widget trên Màn hình chính của tôi mà tôi thêm một lần nhấp vào một Nút. Tôi vượt qua id phụ tùng từ Widget cho Dịch vụ, nhưng khi im đọc WidgetId tại Dịch Vụ nó luôn luôn 3.Android: Chuyển AppWidgetId đến một Dịch vụ
Widget:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for (int appWidgetId : appWidgetIds) {
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.widget);
Intent intent = new Intent(context, WidgetService.class);
// prints the correct appWidgetId
System.out.println(appWidgetId);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
remoteView.setOnClickPendingIntent(R.id.Button01, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, remoteView);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
Dịch vụ trông như thế này:
public int onStartCommand(Intent intent, int flags, int startId){
if (intent != null && intent.getExtras() != null) {
int widgetId = intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
// 3 is always printend
System.out.println(widgetId);
// More stuff here
}
return super.onStartCommand(intent, flags, startId);
}
Vậy tôi đang làm gì sai?
Great find. Tôi đã cố gắng giải quyết vấn đề này một thời gian, và tất cả cùng với nó như trong ví dụ cơ bản. Geez. Cảm ơn nhiều! – icecreamman