`

android通讯

阅读更多

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();
	        }
	    }
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics