您的位置:首页 > 其它

BaseActivity基类封装

2017-07-04 09:59 148 查看
**
* Activity基类
*/
public  abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener{
/**
* 设置ContentView
* @return R.layout.xxx
*/
protected abstract int getLayoutId();

/**
* 初始化View
*/
protected abstract void initView();

/**
* add Listener
*/
protected abstract void setListener();

/**
* 初始化数据
*/
//protected abstract void initData();

/**
* view点击
* @param v
*/
public abstract void widgetClick(View v);

//    private BroadcastReceiver bReceiver;
//    private IntentFilter iFilter;
private long exitTime = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
//添加Activity到堆栈
MyApp.getInstance().addActivity(this);
//动态注册广播
//        iFilter = new IntentFilter();
//        iFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
//        bReceiver = new myBroadCast();
//        registerReceiver(bReceiver, iFilter);

initView();
setListener();
//initData();
}

@Override
public void onClick(View v) {
if (fastClick())
widgetClick(v);
}

private long lastClick = 0;
private boolean fastClick() {
if (System.currentTimeMillis() - lastClick <= 1000) {
return false;
}
lastClick = System.currentTimeMillis();
return true;
}

/**
*findViewById()
* @param id
* @param <T>
* @return
*/
protected  <T extends View> T $findViewById(int id) {
return (T) findViewById(id);
}

/**
* Toast
*/

protected void $toast(CharSequence msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
protected boolean isDebug = true;

/**
* Log
* @param msg
*/
protected void $Log(String msg) {
if (isDebug) {
Log.e(this.getClass().getName(), msg);
}
}

/**
* 网络是否可用
*
* @param context
* @return
*/
protected  boolean isNetworkAvailable(Context context) {
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] info = mgr.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
return false;
}

/**
* 广播
*/
//    public static class myBroadCast extends BroadcastReceiver {
//        @Override
//        public void onReceive(Context arg0, Intent arg1) {
//            ConnectivityManager connectivityManager = (ConnectivityManager) arg0.getSystemService(arg0.CONNECTIVITY_SERVICE);
//            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
//            if (networkInfo != null && networkInfo.isAvailable()) {
//                Toast.makeText(arg0, "网络已连接", Toast.LENGTH_SHORT).show();
//            } else {
//                Toast.makeText(arg0, "网络未连接", Toast.LENGTH_SHORT).show();
//            }
//        }
//    }

/**
* 连按返回键退出APP
*
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {

if ((System.currentTimeMillis() - exitTime) > 2000)  //System.currentTimeMillis()无论何时调用,肯定大于2000
{
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
//                Intent intent = new Intent(Intent.ACTION_MAIN);
//                intent.addCategory(Intent.CATEGORY_HOME);
//                startActivity(intent);
//                System.exit(0);
MyApp.getInstance().AppExit();
}
return true;
}
return super.onKeyDown(keyCode, event);
}

@Override
protected void onDestroy() {
super.onDestroy();
//结束Activity&从栈中移除该Activity
MyApp.getInstance().finishActivity(this);

//unregisterReceiver(bReceiver);//注销广播
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: