public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
boolean isExit;
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
isExit = false;
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//0、初始化基类数据
initBaseData();
//1、初始化布局
setContentView(getRootView());
//2、初始化控件
initView();
//3、初始化数据
initData();
//4、初始化点击事件
initListener();
//buter
ButterKnife.bind(this);
}
/**
* 初始化基类数据
*/
private void initBaseData() {
}
/**
* 初始化布局
*/
protected abstract int getRootView();
/**
* 初始化控件
*/
protected abstract void initView();
/**
* 初始化数据
*/
protected abstract void initData();
/**
* 初始化点击事件
*/
protected abstract void initListener();
//可以传数据跳转
protected void openActivity(Class<?> targetActivity, Bundle bundle) {
Intent intent = new Intent(this, targetActivity);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
public void openActivity(Class<?> targetActivityClass) {
openActivity(targetActivityClass, null);
}
//吐司
protected void showLong(String text) {
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
}
protected void showShort(String text) {
Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
}
/**
* 注册共性的控件
*/
private void registComBtn() {
ImageView back = findViewById(R.id.back_key);
if (back != null) {
back.setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
//大部分都有的控件的点击事件,在基类里处理
case R.id.back_key://(返回键为例) 生成ids.xml文件
this.onBackPressed();
break;
default:
processClick(v);
break;
}
}
protected abstract void processClick(View v);
/**
* 实现沉浸式通知栏,使通知栏和APP的标题颜色一样
*/
protected void immersiveNotification() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
}
public boolean isNetworkAvailable(Activity activity)
{
Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null)
{
return false;
}
else
{
// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
if (networkInfo != null && networkInfo.length > 0)
{
for (int i = 0; i < networkInfo.length; i++)
{
System.out.println(i + "===状态===" + networkInfo[i].getState());
System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
// 判断当前网络状态是否为连接状态
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}
//点击两次退出
/* @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return false;
} else {
return super.onKeyDown(keyCode, event);
}
}
public void exit(){
if (!isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
mHandler.sendEmptyMessageDelayed(0, 2000);
} else {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
System.exit(0);
}
}*/
}
boolean isExit;
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
isExit = false;
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//0、初始化基类数据
initBaseData();
//1、初始化布局
setContentView(getRootView());
//2、初始化控件
initView();
//3、初始化数据
initData();
//4、初始化点击事件
initListener();
//buter
ButterKnife.bind(this);
}
/**
* 初始化基类数据
*/
private void initBaseData() {
}
/**
* 初始化布局
*/
protected abstract int getRootView();
/**
* 初始化控件
*/
protected abstract void initView();
/**
* 初始化数据
*/
protected abstract void initData();
/**
* 初始化点击事件
*/
protected abstract void initListener();
//可以传数据跳转
protected void openActivity(Class<?> targetActivity, Bundle bundle) {
Intent intent = new Intent(this, targetActivity);
if (bundle != null) {
intent.putExtras(bundle);
}
startActivity(intent);
}
public void openActivity(Class<?> targetActivityClass) {
openActivity(targetActivityClass, null);
}
//吐司
protected void showLong(String text) {
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
}
protected void showShort(String text) {
Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
}
/**
* 注册共性的控件
*/
private void registComBtn() {
ImageView back = findViewById(R.id.back_key);
if (back != null) {
back.setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
//大部分都有的控件的点击事件,在基类里处理
case R.id.back_key://(返回键为例) 生成ids.xml文件
this.onBackPressed();
break;
default:
processClick(v);
break;
}
}
protected abstract void processClick(View v);
/**
* 实现沉浸式通知栏,使通知栏和APP的标题颜色一样
*/
protected void immersiveNotification() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
}
public boolean isNetworkAvailable(Activity activity)
{
Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null)
{
return false;
}
else
{
// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
if (networkInfo != null && networkInfo.length > 0)
{
for (int i = 0; i < networkInfo.length; i++)
{
System.out.println(i + "===状态===" + networkInfo[i].getState());
System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
// 判断当前网络状态是否为连接状态
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}
//点击两次退出
/* @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return false;
} else {
return super.onKeyDown(keyCode, event);
}
}
public void exit(){
if (!isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
mHandler.sendEmptyMessageDelayed(0, 2000);
} else {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
System.exit(0);
}
}*/
}