1、Activity之间通讯Intent(传参例子)
A端
Intent myintent=new Intent(aaactivity.this,bb.class); myintent.putExtra("myname","zhangmeie"); startActivity(myintent); aaactivity.this.finish();
B端
Bundle bundle=this.getIntent().getExtras(); if(null!=bundle){ txt.setText(bundle.getString("myname").toString()); }
2、本类Message+Handler通讯
for(i=0;i<a.length;i++){ Thread.sleep(1000); if(i==4){ Message m=new Message(); m.what=Acitivy01.GUI_STOP_NOTIFIER; Acitivity01.this.myMessageHandler.sendMessage(m); //停止 }else{ Message m=new Message(); m.what=Activity01.GUI_THREADING_NOTIFIER; Acitity01.this.myMessageHandler.sendMessage(m);//继续走 } }
Handler myMessageHandler=new Handler() { public void handleMessage(Message msg){ case Acitivity01.GUI_STOP_NOTIFIER: m_progressBar.setVisibility(View.GONE); .................... case Activity01.GUI_THREADING_NOTIFIER: if(!Thread.currentThread().isInterrupted()){ ....................... } } }
3、应用程序之间通讯Broadcast
程序A的activity01中
Intent intent = new Intent().setAction("com.a.acitity02").putExtra("title","hello"); sendBroadcast(intent); //广播出去
程序B的AndroidManifest.xml加入注册
<receiver android:name="activity02"> <intent-filter android:priority="100"> <action android:name="com.a.actitity01"/> </intent-filter> </receiver>
程序B的actitity02加入
public class activity02 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("com.a.actitity01")){ //播放一首音乐 MediaPlayer.create(context, R.raw.babayetu).start(); } } }