Android BroadCast类讲解

来源:互联网 发布:淘宝联盟搜索不到产品 编辑:程序博客网 时间:2024/05/09 14:19
注册广播类以拱调用. 注意:其中android.intent.action.BOOT_COMPLETED是系统自带的。没有实现类。而com.broadcast.app.Hello要有实现类。它的超类是BroadcastReceiver,它有一个public void onReceive(Contextcontext, Intent intent)方法。红色高显.myBroadCast这个接受器对象要实现这个类//如果接收的事件发生 @Override public void onReceive(Context context, Intent intent) { //对比Action决定输出什么信息 if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){ Log.e("HelloBroadReciever","BOOT_COMPLETED!!!!!!!!!!!!!!!!!!!!!!!!!"); //设定程序自动运行 IntentsayHelloIntent=new Intent(context,BroadCastActivity.class); sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //开始一个新类 context.startActivity(sayHelloIntent); } if(intent.getAction().equals("com.broadcast.app.Hello")){ Log.e("HelloBroadReciever", "Say Helloto WAHAHA !!!!!!!!!!!!!!!!!!!!!!!!!"); Log.e("HelloBroadReciever",intent.getStringExtra("yaoyao")); MediaPlayer.create(context, R.raw.tada).start();}然后通过在Activity子类中进行调用//定义一个intent,并传递值 出去 Intent intent = new Intent().setAction( "com.broadcast.app.Hello").putExtra("yaoyao", "wahaha is189 days old ,27 weeks -- 2010-08-10"); //广播出去 sendBroadcast(intent);要说明的是:android.intent.action.BOOT_COMPLETED注册的是开机自动运行。所有系统会动调用这个广播,而com.broadcast.app.Hello是自定义的,所以要程序员手动进行配置进行开启。在程序中有一个Intent传值。 Intent intent=new Intent(); intent.putExtra(“yaoyao”,” yaoyao is 189days old ,27 weeks -- 2010-08-10”);可以将值传递出去。无论是BroadReceiver,还是Activity子类都可以收到。如:intent.getStringExtra("yaoyao")Activtiy之间的切换:Intent intent=new Intent();intent.setClass(****Activity.this,***Activity.class);StartActivity(intent);****Activity.this.finish();
原创粉丝点击