【发布时间】:2016-05-26 21:15:17
【问题描述】:
我正在尝试从任何带有广播的服务中捕获我的小部件提供程序中的回调。 但这不起作用。
这是我的小部件提供者
public class MyProvider extends AppWidgetProvider {
final String LOG_TAG = "States";
public final static String BROADCAST_ACTION = "action";
BroadcastReceiver br;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "receive intent"); // No fire here!!
}
};
IntentFilter intFilt = new IntentFilter(BROADCAST_ACTION);
context.registerReceiver(br, intFilt);
}
}
这是我的 remoteViewsFactory,我想从中捕获回调。
public class MyFactory implements RemoteViewsFactory {
Context context;
int widgetID;
final String LIST_READY = "list_ready";
public final static String BROADCAST_ACTION = "action";
@Override
public void onDataSetChanged() {
Intent intent = new Intent(BROADCAST_ACTION);
intent.putExtra(LIST_READY, 1);
context.sendBroadcast(intent);
}
}
也许这是错误的方式?如何更好地组织widget和factory之间的广播?
【问题讨论】: