Androidアプリケーションは複数のactivityを開発してプログラムを完全に終了する方法


以前、複数のactivityの脱退を学ぶのはいつも面倒だったが、実際にネット上で考えたほうが良い脱退方式はActivityのベースクラスを作成することであり、他のActicityはこのベースクラスを継承している.使用する放送を終了し、終了する必要がある場所で放送を送信する.この放送はベースクラスで受信.そしてfinish()は、これでいいです.Activityごとにコードを書く必要はありません.ベースクラスを作成するメリットはまだたくさんあります.ベース+ラジオはいろいろなことができます.直接コードを入力しました:
ベースクラスBaseActivity:
public class BaseActivity extends Activity {
	public Activity aty;
	public ExitAllBroadCast exitAllBroadCast;
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        aty = BaseActivity.this;
        exitAllBroadCast = new ExitAllBroadCast();
       
    }
    /* (non-Javadoc)
     * @see android.app.Activity#onStart()
     */
    @Override
    protected void onStart() {
    	IntentFilter filter = new IntentFilter();//   IntentFilter  
		filter.addAction("com.kg.exit.broadcast");
		registerReceiver(exitAllBroadCast, filter);//   Broadcast Receiver
    	super.onStart();
    }
   class ExitAllBroadCast extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		aty.finish();
	}
	   
   }
    @Override
    protected void onDestroy() {
    	// TODO Auto-generated method stub
    	super.onDestroy();
    	unregisterReceiver(exitAllBroadCast);
    }
}
サブクラスActivity 01
public class Activity01 extends BaseActivity {
	private TextView tx;
	private Button btn;
	private Context ctx;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ctx = this;
        tx =  (TextView) findViewById(R.id.tx);
        tx.setText("activity01");
        btn =  (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClass(ctx, Activity02.class);
				startActivity(intent);
			}
		});
    }
}
サブクラス
Activity02:
public class Activity02 extends BaseActivity {
	public static final int MENU_EXITAPPLICATION = Menu.FIRST;
	private TextView tx;
	private Button btn;
	private Context ctx;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ctx = this;
        tx =  (TextView) findViewById(R.id.tx);
        tx.setText("activity02");
        btn =  (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClass(ctx, Activity01.class);
				startActivity(intent);
			}
		});
        
    }
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        menu.add(0, MENU_EXITAPPLICATION, 0,"    ");  
        return super.onCreateOptionsMenu(menu);  
    }  
      
      
    @Override  
    public boolean onOptionsItemSelected(MenuItem item) {  
        if(item.getItemId() == MENU_EXITAPPLICATION){  
			Intent myIntent = new Intent();//   Intent  
			myIntent.setAction("com.kg.exit.broadcast");
			sendBroadcast(myIntent);//     
        }  
        return super.onOptionsItemSelected(item);  
    }  
}
ソースアドレス:http://download.csdn.net/detail/kingsonl/4309569