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から渡されたデータかが表示されます.コードは次のとおりです.
もちろん、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はこれらの役割だけでなく、私たち自身が発掘する必要があります.