今天在写程序的时候遇到一个警告:ActivityManager: Warning: Activity not started, its current task has been brought to the front
没想明白,然后google了一下,才发现这是Android的一种机制(应该叫这个机制这个名称吧)。
有时候我们按下back按钮或是home键,其实有时候没有真正退出程序。Android虚拟机没有结束这个进程,而是以缓存的形式在Android虚拟机中存在,只有在内存不足的情况下,才会回收这部分内存。其实这样做有好处,当我需要快速启动这个程序的时候,速度非常快。
所以出现这种情况是因为我的程序没有发生变化,而且内存足够用,直接将缓存Cached状态放置到任务栈的顶端,这样达到了快速启动的效果。
要消除这个警告,只需要在手机上把这个后台清理了即可。
总结:
今天学的不多,就学习了事务和升级数据库的方法。
一.事务。
事务就是保证让一系列的操作要么全部完成,要么一个都不完成。
1.调用SQLiteDatabase的beginTransaction()方法开启一个事务。
2.当所有的操作都完成之后,调用setTransactionSuccessful()表示事务以及成功执行。
3.调用endTransaction()方法来结束事务。
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.beginTransaction();
try {
db.delete("Book", null, null);
ContentValues values = new ContentValues();
values.put("name", "C++");
values.put("author", "Sucre");
values.put("pages", "262");
values.put("price", 236);
db.insert("Book", null, values);
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
二,升级数据库
当指定的数据库的版本号大于当前数据库的版本号时,就会进入onUpgrade()方法中去执行更新操作。