Browse Source

计步数据库独立出来

FANGLH 9 years ago
parent
commit
875c439cb8

+ 3 - 1
WeiChat/src/main/AndroidManifest.xml

@@ -901,7 +901,9 @@
             android:exported="true" />
         <!-- 计步功能 服务 -->
         <service
-            android:name="com.xzjmyk.pm.newpedo.service.StepService">
+            android:name="com.xzjmyk.pm.newpedo.service.StepService"
+            android:priority="1000"
+            android:process="com.spring.stepcount.service">
             <intent-filter>
 
                 <!-- 系统启动完成后会调用 -->

+ 27 - 27
WeiChat/src/main/java/com/xzjmyk/pm/newpedo/db/StepDataDao.java

@@ -5,7 +5,6 @@ import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 
-import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.newpedo.bean.StepEntity;
 
 import java.util.ArrayList;
@@ -16,9 +15,11 @@ import java.util.List;
  */
 
 public class StepDataDao {
+    private StepDBOpenHelper stepHelper;
+    private SQLiteDatabase stepDb;
 
     public StepDataDao(Context context) {
-
+        stepHelper = new StepDBOpenHelper(context);
     }
 
     /**
@@ -27,13 +28,14 @@ public class StepDataDao {
      * @param stepEntity
      */
     public void addNewData(StepEntity stepEntity) {
-        //TODO 获取db的方式统一使用这个,以后的方法里面使用到db的也用这个方式获取,不然有可能出现闪退
-        SQLiteDatabase stepDb = DatabaseManager.getInstance().openDatabase();
+        stepDb = stepHelper.getReadableDatabase();
+
         ContentValues values = new ContentValues();
         values.put("curDate", stepEntity.getCurDate());
         values.put("totalSteps", stepEntity.getSteps());
         stepDb.insert("step", null, values);
-        DatabaseManager.getInstance().closeDatabase();
+
+        stepDb.close();
     }
 
     /**
@@ -43,23 +45,22 @@ public class StepDataDao {
      * @return
      */
     public StepEntity getCurDataByDate(String curDate) {
-        SQLiteDatabase stepDb = DatabaseManager.getInstance().openDatabase();
+        stepDb = stepHelper.getReadableDatabase();
         StepEntity stepEntity = null;
         Cursor cursor = stepDb.query("step", null, null, null, null, null, null);
-
-            while (cursor.moveToNext()) {
-                String date = cursor.getString(cursor.getColumnIndexOrThrow("curDate"));
-                if (curDate.equals(date)) {
-                    String steps = cursor.getString(cursor.getColumnIndexOrThrow("totalSteps"));
-                    stepEntity = new StepEntity(date, steps);
-                    //跳出循环
-                    break;
-                }
+        while (cursor.moveToNext()) {
+            String date = cursor.getString(cursor.getColumnIndexOrThrow("curDate"));
+            if (curDate.equals(date)) {
+                String steps = cursor.getString(cursor.getColumnIndexOrThrow("totalSteps"));
+                stepEntity = new StepEntity(date, steps);
+                //跳出循环
+                break;
             }
-            //关闭数据库
-                cursor.close();
-                DatabaseManager.getInstance().closeDatabase();
-            return stepEntity;
+        }
+        //关闭
+        stepDb.close();
+        cursor.close();
+        return stepEntity;
     }
 
     /**
@@ -69,7 +70,7 @@ public class StepDataDao {
      */
     public List<StepEntity> getAllDatas() {
         List<StepEntity> dataList = new ArrayList<>();
-        SQLiteDatabase stepDb = DatabaseManager.getInstance().openDatabase();
+        stepDb = stepHelper.getReadableDatabase();
         Cursor cursor = stepDb.rawQuery("select * from step", null);
 
         while (cursor.moveToNext()) {
@@ -80,25 +81,24 @@ public class StepDataDao {
         }
 
         //关闭数据库
+        stepDb.close();
         cursor.close();
-        DatabaseManager.getInstance().closeDatabase();
         return dataList;
     }
 
     /**
      * 更新数据
-     *
      * @param stepEntity
      */
     public void updateCurData(StepEntity stepEntity) {
-        SQLiteDatabase stepDb = DatabaseManager.getInstance().openDatabase();
+        stepDb = stepHelper.getReadableDatabase();
 
         ContentValues values = new ContentValues();
-        values.put("curDate", stepEntity.getCurDate());
+        values.put("curDate",stepEntity.getCurDate());
         values.put("totalSteps", stepEntity.getSteps());
         stepDb.update("step", values, "curDate=?", new String[]{stepEntity.getCurDate()});
 
-        DatabaseManager.getInstance().closeDatabase();
+        stepDb.close();
     }
 
 
@@ -108,10 +108,10 @@ public class StepDataDao {
      * @param curDate
      */
     public void deleteCurData(String curDate) {
-        SQLiteDatabase stepDb = DatabaseManager.getInstance().openDatabase();
+        stepDb = stepHelper.getReadableDatabase();
 
         if (stepDb.isOpen())
             stepDb.delete("step", "curDate", new String[]{curDate});
-        DatabaseManager.getInstance().closeDatabase();
+        stepDb.close();
     }
 }