执行事务,只有在特定的条件下才会设置为successful,否则就会自动的rollbackrollbak有两种情况,一种是执行失败了,另外一种是我们doIntransaction里面执行到某些情况的时候自己设置需要rollback+++++++++++++++++++++++++++++++++++

事务,开始,做事,判,成功,结束

package com.example.kodulf.litepaldemo; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteTransactionListener; import org.litepal.LitePal;/** * Created by Kodulf on 2017/5/1. */ public class DatabaseTransaction { public static synchronized void doTransaction(SQLiteTransactionListener sqLiteTransactionListener, DatabaseExecutor databaseExecutor){ //获取database SQLiteDatabase database = LitePal.getDatabase(); //开始执行事务 database.beginTransactionWithListener(sqLiteTransactionListener);try { //do something databaseExecutor.doInTransaction(); //判断如果是否需要rollback, //当needRollback为false的时候,那么设置事务执行成功,只有这个条件的时候才将事务设置为成功 //否则不设置为成功,那么会自动的rollback if(!databaseExecutor.needRollback()) database.setTransactionSuccessful(); }catch (Exception e){ e.printStackTrace(); }finally { database.endTransaction(); } }  public interface DatabaseExecutor {         /**          * 可以在这里设置是否需要rollback          * @return          */         boolean needRollback();         /**          * 需要在事务中执行的          */         void doInTransaction();     } } 调用的地方:such as: public void add(View view) { DatabaseTransaction.doTransaction(new SQLiteTransactionListener() { @Override public void onBegin() { Log.d("kodulf", "tranaction onBegin"); } @Override public void onCommit() { Log.d("kodulf", "tranaction onCommit"); } @Override public void onRollback() { Log.d("kodulf", "tranaction on Roll back"); } }, new DatabaseTransaction.DatabaseExecutor() { boolean ret = false; @Override public boolean needRollback() { return ret; } @Override public void doInTransaction() { if(num%3==0){ ret = true; } } }); }

 

更多相关文章

  1. Java实现多种情况下语言本地化
  2. Android学习_18_使用事务操作SQLite数据库
  3. android textview宽度固定的情况下字体大小自适应
  4. android 使用数据库事务提高操作效率
  5. android:sqlite 数据库的事务详解
  6. android获取手机流量使用情况
  7. Android版本和兼容情况
  8. Android 设备管理器和有权查看使用情况的应用详解

随机推荐

  1. 平安科技移动开发二队技术周报(第三十三期
  2. 【高德地图开发1】---简介
  3. Android异步机制一:使用Thread+Handler实
  4. Android平台开发-Android HAL develop-An
  5. Ubuntu下安装android开发环境经历
  6. Android(安卓)Exception No such table a
  7. Android主线程消息循环
  8. Android代码混淆指南
  9. Android应用程序的生命周期
  10. 32位ubuntu10.04编译Android4.0.1内核