首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 关于注册广播发送广播的有关问题

2012-03-28 
android 关于注册广播发送广播的问题Java codeprivate BroadcastReceiver mBatInfoReceiver new Broadca

android 关于注册广播发送广播的问题

Java code
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver()   {      public void onReceive(Context context, Intent intent)     {       String action = intent.getAction();        if (Intent.ACTION_BATTERY_CHANGED.equals(action))       {         intLevel = intent.getIntExtra("level", 0);          intScale = intent.getIntExtra("scale", 100);         onBatteryInfoReceiver(intLevel,intScale);      }      }   }; public void onCreate(Bundle savedInstanceState)   {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);         mButton01 = (Button)findViewById(R.id.myButton1);      mButton01.setOnClickListener(new Button.OnClickListener()     {       public void onClick(View v)       {         registerReceiver         (           mBatInfoReceiver,           new IntentFilter(Intent.ACTION_BATTERY_CHANGED)        );       }     });   }public void onBatteryInfoReceiver(int intLevel, int intScale)   {    final Dialog d = new Dialog(ey06_02.this);    d.setTitle(R.string.str_dialog_title);     d.setContentView(R.layout.mydialog);         Window window = d.getWindow();     window.setFlags     (        WindowManager.LayoutParams.FLAG_BLUR_BEHIND,       WindowManager.LayoutParams.FLAG_BLUR_BEHIND     );    TextView mTextView02 = (TextView)d.findViewById(R.id.myTextView2);     mTextView02.setText     (       getResources().getText(R.string.str_dialog_body)+       String.valueOf(intLevel * 100 / intScale) + "%"     );    Button mButton02 = (Button)d.findViewById(R.id.myButton2);     mButton02.setOnClickListener(new Button.OnClickListener()     {       public void onClick(View v)       {         unregisterReceiver(mBatInfoReceiver);         d.dismiss();       }     });     d.show();   } }


这个代码是检测手机电量的,我这里好像只是注册了广播,但没发出,难道手机内电量这个广播不间断的在发的,只要注册了就可以接收到?

[解决办法]
首先你注册的是广播接收器。。。用来接受广播的
其次这些广播是由系统发出的,至于何时发你不用管
[解决办法]
呵呵,或许就像你说的系统在一直发Intent.ACTION_BATTERY_CHANGED这个广播
因为电量是一直在change的。。。
[解决办法]
探讨

引用:
首先你注册的是广播接收器。。。用来接受广播的
其次这些广播是由系统发出的,至于何时发你不用管

但为什么我想去得到电量有多少,不管什么时候都能得到?

热点排行