您的位置:首页 > 移动开发 > Android开发

Android学习心得--关于BaseActivity

2015-02-02 10:36 465 查看
在项目当中构建一个BaseActivity,这个BaseActivity继承了Activity,但是它确实所有项目当中的Activity的parents。在BaseActivity当中可以实现许多继承功能,这个会使项目当中的Activity开发起来更快,不用重复写许多的基础功能,而且封装的很整洁。

我下面就以公司的项目中BaseActivity实现的功能举例:

1,判断网络是否连接上了。

public boolean isGoodNet() {
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if (networkinfo == null || !networkinfo.isAvailable()) {
Toast.makeText(this, "网络异常",Toast.LENGTH_SHORT).show();
return false;
}
return true;
}


2,注册退出事件监听,在onDestory当中可以使用到

public void regListener() {
exitre = new ExitListenerReceiver();
IntentFilter intentfilter = new IntentFilter();
intentfilter.addAction(this.getPackageName() + "."
+ "ExitListenerReceiver");
this.registerReceiver(exitre, intentfilter);
}


3,设定退出菜单

public void quit(boolean menu) {
if (menu) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("退出");
builder.setTitle(getResources().getString(R.string.app_name));
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
finish();
System.exit(0);
}
});

builder.setNegativeButton("取消", null);
builder.create().show();
} else {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(),
"再按一次退出" + getResources().getString(R.string.app_name),
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
}
}


4,封装一个Toast。

public final void showMessage(String message) {
if(!message.equals("")){
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}


总结:BaseActivity其实可以做许多东西,它很好的体现了面向对象变成的特点,封装,继承,多态等。以后的每个项目都应该先封装一个该内容。

补充:再添加三个抽象函数

<pre name="code" class="java">abstract <span style="font-family: 宋体;">public void getIntentDatas();</span>
abstract <span style="font-family: 宋体;">public</span><span style="font-family: 宋体;"> void initViews();</span>
abstract <span style="font-family: 宋体;">public</span><span style="font-family: 宋体;"> void getDatas();</span>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: