Activity基类广播退出APP

定义一个android基类退出app

Activity基类:

[java] view plain copy print ?
  1. package com.mayi.close_activity_by_broadcast.base;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.BroadcastReceiver;  
  5. import android.content.Context;  
  6. import android.content.Intent;  
  7. import android.content.IntentFilter;  
  8. import android.os.Bundle;  
  9. import android.util.Log;  
  10.   
  11. public class BaseActivity extends Activity {  
  12.     protected static final String TAG = "BaseActivity";  
  13.     BroadcastReceiver mybroad=new BroadcastReceiver() {  
  14.           
  15.         @Override  
  16.         public void onReceive(Context context, Intent intent) {  
  17.             // TODO Auto-generated method stub   
  18.             Log.i(TAG, "退出APP");  
  19.             finish();  
  20.         }  
  21.     };  
  22.     @Override  
  23.     protected void onCreate(Bundle savedInstanceState) {  
  24.         // TODO Auto-generated method stub   
  25.         super.onCreate(savedInstanceState);  
  26.         IntentFilter filter=new IntentFilter();  
  27.         filter.addAction("Exit APP");  
  28.         this.registerReceiver(mybroad, filter);  
  29.     }  
  30.     @Override  
  31.     protected void onDestroy() {  
  32.         // TODO Auto-generated method stub   
  33.         super.onDestroy();  
  34.         this.unregisterReceiver(mybroad);  
  35.     }  
  36. }  
package com.mayi.close_activity_by_broadcast.base;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;

public class BaseActivity extends Activity {
	protected static final String TAG = "BaseActivity";
	BroadcastReceiver mybroad=new BroadcastReceiver() {
		
		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub
			Log.i(TAG, "退出APP");
			finish();
		}
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		IntentFilter filter=new IntentFilter();
		filter.addAction("Exit APP");
		this.registerReceiver(mybroad, filter);
	}
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		this.unregisterReceiver(mybroad);
	}
}

test页面:

[html] view plain copy print ?
  1. package com.mayi.close_activity_by_broadcast;  
  2.   
  3. import android.content.Intent;  
  4. import android.os.Bundle;  
  5. import android.view.Menu;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8.   
  9. import com.mayi.close_activity_by_broadcast.base.BaseActivity;  
  10.   
  11. public class MainActivity extends BaseActivity implements OnClickListener {  
  12.   
  13.     @Override  
  14.     protected void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.activity_main);  
  17.         findViewById(R.id.exitapp).setOnClickListener(this);  
  18.         findViewById(R.id.otherActivity).setOnClickListener(this);  
  19.     }  
  20.   
  21.     @Override  
  22.     public boolean onCreateOptionsMenu(Menu menu) {  
  23.         // Inflate the menu; this adds items to the action bar if it is present.  
  24.         getMenuInflater().inflate(R.menu.main, menu);  
  25.         return true;  
  26.     }  
  27.   
  28.     @Override  
  29.     public void onClick(View v) {  
  30.         // TODO Auto-generated method stub  
  31.         switch (v.getId()) {  
  32.         case R.id.exitapp:  
  33.             Intent exit=new Intent();  
  34.             exit.setAction("Exit APP");  
  35.             sendBroadcast(exit);  
  36.             break;  
  37.         case R.id.otherActivity:  
  38.             Intent intent=new Intent(getApplicationContext(), Other.class);  
  39.             startActivity(intent);  
  40.         default:  
  41.             break;  
  42.         }  
  43.     }  
  44.   
  45. }  

你可能感兴趣的:(Activity基类广播退出APP)