使用adb发送广播的小DEMO。
动态注册广播:
public class MainActivity extends Activity { private static final String TAG = "MainActivity"; /* public AnimationDrawable animationDrawable; public ImageView iv;*/ public TextView textview; IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG, "onCreate: "); //设置无标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //设置全屏 ??????getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().getDecorView().setSystemUiVisibility(10); setContentView(R.layout.activity_main); textview=(TextView)findViewById(R.id.textview); intentFilter = new IntentFilter(); intentFilter.addAction("com.example.startproject"); //为BroadcastReceiver指定action,即要监听的消息名字。 } private BroadcastReceiver StartProjectBroadcastReceive =new BroadcastReceiver() { @Override //Once boot completed,start server public void onReceive(Context context, Intent intent) { Log.e(TAG, "onReceive: "); //textview.setText("received broadcast!"); runOnUiThread(new Runnable() { @Override public void run() { textview.setText("received broadcast!"); } }); } }; @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.e(TAG, "onStart: "); registerReceiver(StartProjectBroadcastReceive,intentFilter); //注册监听 } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.e(TAG, "onStop: "); unregisterReceiver(StartProjectBroadcastReceive); //取消监听 } @Override public void onDestroy() { super.onDestroy(); System.gc(); } }
终端下:adb shell am broadcast -a "com.example.startproject" 查看效果
这个例子是动态注册广播,下面介绍一下 Android广播机制。
demo:UseadbSendBroadcast