当前位置: 代码迷 >> Android >> android使用两种模式注册receiver
  详细解决方案

android使用两种模式注册receiver

热度:71   发布时间:2016-04-28 05:18:11.0
android使用两种方式注册receiver

1、

package com.example.myreceiver;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.content.IntentFilter;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {	private MyBroadcastReceiver receiver = new MyBroadcastReceiver();	private IntentFilter filter = new IntentFilter("com.feng.intent");	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);	}	@Override	public boolean onCreateOptionsMenu(Menu menu) {		// Inflate the menu; this adds items to the action bar if it is present.		getMenuInflater().inflate(R.menu.main, menu);		return true;	}		public void start(View view){		Intent intent = new Intent("com.feng.intent");		intent.putExtra("name", "wang");		sendBroadcast(intent);	}	@Override	protected void onPause() {		super.onPause();		unregisterReceiver(receiver);	}	@Override	protected void onResume() {		super.onResume();		registerReceiver(receiver, filter);	}		}

package com.example.myreceiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class MyBroadcastReceiver extends BroadcastReceiver{	@Override	public void onReceive(Context arg0, Intent arg1) {		System.out.println("good!i've recevied u!");		Log.e("MyBroadcastReceiver", "good!i've recevied u!");	}	}
这种方式的好处是,使用灵活,可控性高。

另外一种是在mainfest.xml中注册。这种好处是只要应用程序安装后,就会一直处于监听状态。

      <receiver android:name="com.example.myreceiver.MyBroadcastReceiver">            <intent-filter >                <action android:name="com.feng.intent"/>            </intent-filter>        </receiver>



  相关解决方案