标签: android-sqlite

在sqlite中创建多个表的问题

我正在使用以下代码在数据库中创建多个表.但是,我不明白为什么会出现这个问题.

private static final String TABLE_SMSFilter = "SMSFilter";


public void onCreate(SQLiteDatabase db)
    {
        Log.d("Test", "Control is in Oncreate()");
        String CREATE_SMSSSCHEDULE_TABLE = "CREATE TABLE " + TABLE_SMSSchedule
                + "(" + KEY_ID + " INTEGER PRIMARY KEY autoincrement,"
                + KEY_NUMBER + " TEXT)";

        String CREATE_PROFILE_SCHEDULE_TABLE = "CREATE TABLE "
                + TABLE_ProfileSchedule + "(" + ProfileSchedule_ID
                + " INTEGER PRIMARY KEY autoincrement,"
                + ProfileSchedule_NUMBER + " TEXT, "
                + ProfileSchedule_ProfileMode + " TEXT,"
                + ProfileSchedule_CalendarID + "INTEGER)";

        String CREATE_SMS_FILTER_TABLE = "CREATE TABLE " …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-sqlite

10
推荐指数
1
解决办法
3188
查看次数

Android在Play商店推送更新

我有一个依赖于SQLite的应用程序,数据由资源文件夹中的应用程序随附的xmls填充.

  1. 第一次设置共享首选项config_run = false时运行应用程序.
  2. 然后我检查是否config_run = false然后解析xml并将数据转储到db
  3. 设置config_run = true

现在我意识到,当我必须在Google Play上推送更新并在XML中添加更多内容时.即使我将数据库版本从1更改为2.导入脚本也不会运行,因为共享首选项config_run值将设置为true.

有关如何处理这种情况的任何指示?

方案

  1. 第一次安装 - Ver = 1,DB V = 1(数据被解析并转储到数据库中)
  2. 错误修复,推送和更新但没有数据发生变化 - ver = 1.1,DB V = 1(它应该只替换代码而不是升级或重新创建数据库)
  3. 升级了DATA并推送了一个新的更新 - 版本1.2,DB = 2(没有新代码,但必须重新创建数据)

我的应用流程

  1. 该应用程序启动启动活动.如果Shared Pref - config_run等于false,则它会启动Progress Dialog并将数据解析并转储到数据库中.
  2. 在解析和创建数据库并转储数据后,它将转到MainActivity.

第二个案例

  1. SplashActivity运行和config_run = true因此直接转到MAin活动.

正如以下几个人所建议的那样,如果我尝试在SQLiteHelper的onUpgrade中将数据变为数据库,那么它将仅在MAinActivity中发生,因为我在SplashActivity中不打开Db连接并且也不会显示Dialog Progress.

android sharedpreferences sqliteopenhelper android-sqlite

10
推荐指数
3
解决办法
709
查看次数

如何设置定时器每隔n分钟调用一次函数?

我想在Android应用程序中设置一个计时器,该计时器将在每次15/30/45之后调用一个函数,并在用户登录时调用n分钟.但是当用户注销时它也会停止计时器.如果用户再次登录,计时器将从启动开始.我希望将该选项(15/30/45/n分钟)保存在数据库中,以便我可以在同步后更新列表.

定时器是一个好方法还是我需要使用报警服务?或者是否需要任何系统服务?

是否可以将本地电话数据库存储中的先前doc /文件更改为通过Web服务器接收的新文档?这样做需要系统服务吗?

android android-alarms android-sqlite

10
推荐指数
1
解决办法
2万
查看次数

GreenDao freemaker.jar失踪了

我刚下载了GreenDao的新jar文件,以便为我正在构建的应用程序创建我的数据库.

在完成我的实体建模和它们之间的连接的所有过程之后,我尝试运行生成器项目,但是生成数据库的行出现了这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: freemarker/template/ObjectWrapper
    at com.glide.talk.glide.model.generator.Model.main(Model.java:29)
Caused by: java.lang.ClassNotFoundException: freemarker.template.ObjectWrapper
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

发生的行是:new DaoGenerator().generateAll(schema, src);我在buildpathlib文件夹中只有greendao-generator-1.3.0.jar文件.

任何想法或解决方案都会非常有帮助.

ps 是否可以使用版本1.2中的freemaker.jar?

编辑:目前,我从sourceforge下载了这个版本,我希望这实际上是我需要使用的.

android android-sqlite greendao

10
推荐指数
1
解决办法
4088
查看次数

如何在使用SQLiteOpenHelper时实现SQLCipher

我试图通过在Android应用程序中已经存在且正常运行的数据库设置中实现加密来保护一些合理的数据.

我试着按照这个教程(http://sqlcipher.net/sqlcipher-for-android/)浏览了很多foruns,包括用于Cipher的google组.但是,我仍然不清楚SQLCipher如何工作以及如何调整我的代码以满足我的需求.

我下面这个实现的android系统数据库:http://www.vogella.com/articles/AndroidSQLite/#databasetutorial_database,这意味着我有SQLiteOpenHelper类的扩展和另一个类存储CRUD方法.

在这种情况下我应该如何使用SQLCipher?我应该在哪里定义密码?我应该在哪里使用loadLibs(上下文)?只在主要活动中?或者在访问数据库的每个活动中?

我觉得我差不多了,我只需要最后的推动来解决这个问题:P提前谢谢!

sqlite android android-sqlite

10
推荐指数
1
解决办法
7223
查看次数

GROUP BY子句用于获取sqlite中逗号分隔的值

我的表结构是这样的,使用sqlite3

           CREATE TABLE enghindi (eng TEXT,hindi TEXT)
Run Code Online (Sandbox Code Playgroud)

我有一个名为enghindi的表,其中有两列名为hindi,eng,我想合并eng列的记录,也可以用逗号分隔hindi单词

看下面的表看起来像

在此输入图像描述

我想在下面看到这样的

在此输入图像描述

我想用sqlite3查询做到这一点

mysql sql sqlite android-sqlite

10
推荐指数
1
解决办法
5469
查看次数

Android SQLite:尝试重新打开已经关闭的对象

我正在尝试根据ISBN从我的库存表中获取某些图书数据.但是,我收到一个错误:"尝试重新打开已经关闭的对象".只有当我单击一个listView对象,转到另一个屏幕,通过"finish()"返回到此页面,然后尝试单击另一个listView对象时,才会出现该错误.我提出的String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);onClickListener以前的for循环之前onClickListener和现在的作品.

如果我通过"finish()"从另一个活动返回此活动后尝试getInventoryEntriesByISBN,为什么它不起作用?

SearchResultsScreen发生错误:

String searchEntries[] = InventoryAdapter.getInventoryEntriesByISBN(searchQuery, isbn[position]);
Run Code Online (Sandbox Code Playgroud)

并通过扩展,发生在InventoryAdapter:

Cursor cursor = db.rawQuery(query, new String[] {ISBN});
Run Code Online (Sandbox Code Playgroud)

SearchResultsScreen.java

// Set up search array
    for(int i = 0; i < isbn.length; i++)
    {
        searchArray.add(new InventoryItem(isbn[i], InventoryAdapter.getTitleAndAuthorByISBN(isbn[i])));
    }
    Toast.makeText(getApplicationContext(), "searchArray.size()="+searchArray.size(), Toast.LENGTH_LONG).show();

    // add data in custom adapter
    adapter = new CustomAdapter(this, R.layout.list, searchArray);
    ListView dataList = (ListView) findViewById(R.id.list);
    dataList.setAdapter(adapter);

    // On Click ========================================================
    dataList.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, …
Run Code Online (Sandbox Code Playgroud)

android android-cursor android-sqlite

10
推荐指数
2
解决办法
3万
查看次数

数据库'/data/data/msv_database.db'的连接池无法授予连接.连接:0有效,1空闲,0可用

我遇到以下错误:在整个应用程序中使用单个数据库对象从两个不同的线程访问数据库

数据库
'/data/data/msv_database.db' 的连接池无法授予与线程802的连接(连接:0活动,1空闲,0可用.

android android-sqlite

10
推荐指数
1
解决办法
9102
查看次数

SQLite - 无法打开数据库文件

我正在编写一个Xamarin Android应用程序,并在尝试创建SQLite数据库时遇到错误.

这是我的代码:

string applicationFolderPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "CanFindLocation");
string databaseFileName = System.IO.Path.Combine(applicationFolderPath, "CanFindLocation.db");
SQLite.SQLite3.Config(SQLite.SQLite3.ConfigOption.Serialized);
var db = new SQLiteConnection (databaseFileName);
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

SQLite.SQLiteException: Could not open database file: /data/data/com.xamarin.docs.android.mapsandlocationdemo2/files/CanFindLocation/CanFindLocation.db (CannotOpen)
Run Code Online (Sandbox Code Playgroud)

我有相同的代码在另一个Xamarin应用程序中工作,并想知道该异常是否与包的名称有关?

提前致谢

sqlite android exception xamarin android-sqlite

10
推荐指数
1
解决办法
1万
查看次数

如何开发离线优先的原生Android应用程序

我们正在开发一个原生的Android应用程序(iOS和Web跟随),用户可以在其中协作创建相册.

当设备无法与服务器连接时,我们希望尽可能无缝地体验.在这个Hoodie博客中提到的东西,但Hoodie现在正在用于Web和iOS,我们现在正在寻找Android.

问题

在客户端维护专辑,朋友,图片(URL /本地,而不是位图)的数据.能够在以后将脱机创建/更新操作同步到服务器,并解决冲突.

目前的研究

  1. HTTPResponseCache:缺点:仅缓存已被命中一次的请求.另外需要不同的系统来处理创建/更新操作.
  2. App42,Kinvey:Backend-as-a-service; 缺点:我们希望拥有自己的后端.
  3. Microsoft Sync Framework Toolkit:不确定它与Android的兼容性
  4. PouchDB
  5. Superbus:解决问题的一部分

习惯

使用Android同步适配器在服务器同步上在Android和MySQL上的SQLite中维护数据.然而,这可能是耗时的并且在启动时存在缺陷.

应该如何处理这个问题?

android offline-mode offline-caching offlineapps android-sqlite

10
推荐指数
1
解决办法
8307
查看次数