Android 中的一些开发技巧(延迟启动,文件写出,透明状态栏,任意界面退出)
延迟进行下一个活动
在进行一些操作中,可能要阻塞程序指定的时间,延迟进入下一个活动。这里比较好的方法是:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
/**
* 在该代码块中写要延迟进行的活动。
*
*/
}
}, 1500); // 选定延迟的时间
将文件写入磁盘中存储
在需要将存储的数据导出到SD卡中的时候,采用下述方法会比较方便。.csv文件是excel可以打开的文件。
// 声明FileWrite与BufferedWriter对象
FileWriter fileWriter;
BufferedWriter bufferedWriter;
// 获得存储SD卡的路径
File sdCardFile = Environment.getExternalStorageDirectory();
// 在SD卡路径中新建一个文件,自命名
File saveFile = new File(sdCardFile, "change_info.csv");
// 初始化对象
fileWriter = new FileWriter(saveFile);
bufferedWriter = new BufferedWriter(fileWriter);
// 写入数据
bufferedWriter.write(" ");
// 另起一行
bufferedWriter.newLine();
// 刷新关闭缓冲流
bufferedWriter.flush();
bufferedWriter.close();
在 Android 4.4 以上系统使用透明状态栏模式
新建一个 BaseActivity 其余的 activity 继承于 BaseActivity.在该activity的 onCreate()方法中添上:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
设置状态栏为透明,同时使用无标题栏的模式,就可以使整个界面风格统一。
对于要求适配低于4.4系统的app,应该首先检测系统版本,在合适的版本中才能调用该方法
if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
如何在任何界面退出app
有时候可能需要在app的任意界面中退出该app。方法同样是首先新建一个 BaseActivity 其余的 activity 继承于 BaseActivity. 然后新建一个BaseApplication,在配置文件中修改默认为BaseApplication,(这个BaseApplication同样非常有用,所有Android中的单例变量都可以用这个来实现),然后在BaseApplication中创建一个List对象,通过静态方法获取该对象。然后再BaseActivity中添加如下方法
// 获取Activitys对象,并且在onCreate()方法中将本Activity加入容器中
MyApplication.getAllActivity().add(this);
在其中添加退出方法,要推出是调用该方法。
public void exitApp() {
for (Activity activity : MyApplication.getAllActivity()) {
activity.finish();
}
MyApplication.getAllActivity().clear();
System.exit(0);
}
在onDestroy()方法中remove掉本activity
protected void onDestroy() {
super.onDestroy();
MyApplication.getAllActivity().remove(this);
}