BaseActivity的作用

来源:互联网 发布:杭州软件培训哪里好 编辑:程序博客网 时间:2024/05/20 19:31

在开发中,我们通常都会建一个BaseActivity继承Activity,而我们其他的Activity只要继承BaseActivity就可以,那么BaseActivity到底有什么作用呢?很简单,开发中我们经常都要获取屏幕的宽高,但是如果有多个Activity都需要获取屏幕的宽高呢?那每个Activity都要重复获取,多了很多不必要的代码,这时候就需要用到BaseActivity了。

当然BaseActivity可不止有这个作用,在开发中,也有一个需求,就是我们无论在哪个界面,有时候用户需要直接退出所有Activity,又该如何完成呢?这时候也需要用到BaseActivity。

我们再想想,在Activity中Intent是使用的非常频繁的,如果要传递数据,而如果Activity太多,且有同时几个Activity同时向一个Activity传递数据,我们又该如何分辨哪个数据是从哪个Activity传递过来的呢,BaseActivity又派上用场了,我们可以将Intent封装到BaseActivity的一个方法中。打印的时候打印this,就可以显示是从哪个Acitivity传递过来的数据了。下面是代码:

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<Activity> activities = new ArrayList<Activity>();/**屏幕宽*/public static int SCREEN_WIDTH;/**屏幕高*/public static int SCREEN_HEIGHT;@Overrideprotected 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();}@Overrideprotected 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不止这些作用,这就需要我们自己去发掘了


1 0