BaseActivity的作用

在开发中,我们通常都会建一个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;


	@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不止这些作用,这就需要我们自己去发掘了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值