BaseActivityの役割

2132 ワード

開発では、通常、BaseActivity継承Activityを構築しますが、他のActivityはBaseActivityを継承すればいいのですが、BaseActivityはいったいどんな役割を果たしているのでしょうか.簡単です.開発では画面の幅を取得することがよくありますが、Activityが複数ある場合は画面の幅を取得する必要がありますか?それぞれのActivityは繰り返し取得され、不要なコードが多くなったので、BaseActivityを使う必要があります.
もちろんBaseActivityはこの役割だけでなく、開発においても、私たちがどのインタフェースにいても、ユーザーが直接すべてのActivityを脱退する必要がある場合があります.どうすればいいのでしょうか.この場合もBaseActivityが必要です.
さらに、ActivityではIntentが非常に頻繁に使用されていますが、データを転送する場合、Activityが多すぎて、同時にいくつかのActivityが同時に1つのActivityにデータを転送している場合、どのデータがどのActivityから渡されたのか、BaseActivityがまた役に立ち、IntentをBaseActivityの1つの方法にカプセル化することができます.印刷時にthisを印刷すると、どのActivityから渡されたデータかが表示されます.コードは次のとおりです.
package com.example.neteworknews.activity;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;

public class BaseActivity extends Activity {
	

	ArrayList activities = new ArrayList();
	
	/** */
	public static int SCREEN_WIDTH;
	
	/** */
	public static int SCREEN_HEIGHT;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		WindowManager manager = getWindowManager();
		Display display = manager.getDefaultDisplay();
		DisplayMetrics dm = new DisplayMetrics();
		display.getMetrics(dm);
		SCREEN_WIDTH = dm.widthPixels;
		SCREEN_HEIGHT = dm.heightPixels;
		addActivity();
		
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		removeActivity();
	}

	public void addActivity() {
		activities.add(this);
	}

	public void removeActivity() {
		activities.remove(this);
	}

	/**
	 *  
	 */
	public void finishAllAcitivity() {
		for (Activity activity : activities) {
			if (!activity.isFinishing()) {
				activity.finish();
			}
		}
	}

	/**
	 *  
	 */
	public void startAction(@SuppressWarnings("rawtypes") Class cls,
			String name, String value) {
		Intent intent = new Intent(this, cls);
		intent.putExtra(name, value);
		startActivity(intent);
	}
}

もちろん、BaseActivityはこれらの役割だけでなく、私たち自身が発掘する必要があります.