我如何收听Intent.ACTION
  我开发了一个具有切换自动旋转设置的ImageButton的小部件。  一切工作正常,按下按钮时设置切换。  问题是,我不知道如何列出Intent.ACTION_CONFIGURATION_CHANGED以便按钮更改它的状态,如果设置是从我的小部件以外的其他来源启用/禁用。 
  我已经通过了文档,我知道我无法在Manifest中注册意图过滤器动作android.intent.action.CONFIGURATION_CHANGED ,并且此意图过滤器必须使用Context.registerReceiver (BroadcastReceiver receiver, IntentFilter filter)动态注册。 。 
  我已经尝试创建一个扩展BroadcastReceiver的新类,然后在onUpdate()方法中注册接收器,但它不起作用。 
这是我试过的代码:
BroadcastReceiver类:
public class ConfigurationIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
    if(intent.getAction().equals("android.intent.action.CONFIGURATION_CHANGED")){
        if  (android.provider.Settings.System.getInt(context.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0) == 1){
            remoteViews.setImageViewResource(R.id.widget_autorotate, R.drawable.ic_widget_autorotate_on);
        } else {
            remoteViews.setImageViewResource(R.id.widget_autorotate, R.drawable.ic_widget_autorotate_off);
        }   
        WidgetProvider.pushWidgetUpdate(context.getApplicationContext(), remoteViews);
    }
}
}
这里是AppWidgetProvider类:
public class WidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    context.getApplicationContext().registerReceiver(new ConfigurationIntentReceiver(), new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED));
    pushWidgetUpdate(context, remoteViews);
}
  根据Android的文档, ConfigurationIntentReceiver组件尚未在Manifest中声明。 
如果任何人都能指引我正确的方向,我会非常感激。
链接地址: http://www.djcxy.com/p/50585.html