小编man*_*uai的帖子

Android ContentProvider与ORMLite

我正在使用内容提供程序来管理我的应用程序数据,这些数据不与其他应用程序共享.但是,有一些样板代码,例如将光标转换为域对象.ORMLite提供了一种更优雅的方式,可以直接将数据库条目映射到域对象.所以我想用ORMlite替换内容提供者.但我有些担心:

  1. 内容提供程序在多线程环境中正常工作.我不知道ORMlite是否是线程安全的.
  2. 内容提供者可以广播数据库更改.我不知道ORMLite是否有这种支持.
  3. Android提供程序的一些实用程序,如AsynQueryHandler,CursorLoader,以异步方式查询数据库.如果我使用ORMLite,我必须显式创建一个线程或AsyncTask来进行查询.

我是否应该用ORMLite替换内容提供者?

android ormlite android-contentprovider

9
推荐指数
1
解决办法
5906
查看次数

EditText:当EditText有时具有焦点时,无法输入内容

有时,EditText即使EditText有焦点,我也无法输入任何内容.

但是,我可以输入内容adb shell input keyevent 34,然后字符'f'将显示在EditText.

我不知道为什么EditText不能输入文本,即使它有焦点.

我可以在几个Android设备上重现这个问题.

android android-edittext

6
推荐指数
1
解决办法
2078
查看次数

使用sed用空格替换制表符

我正在尝试使用sed替换4个空格的选项卡,但它不起作用.

这是我的代码:

sed -i '{s/\t/ \{4\}/g}' filename
Run Code Online (Sandbox Code Playgroud)

任何建议都表示赞赏.

linux shell sed

6
推荐指数
2
解决办法
8614
查看次数

SQLite是无类型的吗?

如果sqlite是无类型的,为什么我们声明列的数据类型?declare数据类型有什么用?

为什么android SQLite可以将double值(java 8字节)存储到float列中

java sqlite android

5
推荐指数
1
解决办法
538
查看次数

Android Test testPreconditions

在Android开发人员中,我已经看到testPreconditions()方法应该在所有测试之前启动.但是在我的app测试中,它的表现就像一个普通的测试.它不会在所有测试之前运行.有什么不对 ?

以下是来自android开发人员的testPreconditions()的描述:"前置条件测试在执行其他测试之前检查初始应用程序条件.它类似于setUp(),但开销较少,因为它只运行一次."

junit android unit-testing android-testing

5
推荐指数
2
解决办法
1504
查看次数

为什么android SQLite可以将double值(java 8字节)存储到float列中

Create Table:
db.execSQL("CREATE TABLE " + PERSONS_TABLE + " ("
        + PersonsColumns.ID 
        + " INTEGER PRIMARY KEY AUTOINCREMENT, "
        ...
            + PersonsColumns.HEIGHT + " FLOAT, "
                    + PersonsColumns.CITY + " STRING);");
Write Data:
ContentValues values = new ContentValues();
alues.put(PersonsColumns.HEIGHT, 1.7976931348623157E308);
db.insertOrIgnore(values);
Run Code Online (Sandbox Code Playgroud)

您可以在sqlite中看到值1.7976931348623157E308超出FLOAT值范围(4个字节).为什么它可以正确存储这个值?

java sqlite android

4
推荐指数
1
解决办法
9693
查看次数

android.database.Cursor registerContentObserver

这里是registerContentObserver的描述:

abstract void registerContentObserver(ContentObserver observer)

注册在支持此游标的内容发生更改时调用的观察者.

这是我的代码:

Cursor cursor = (SQLiteCursor)dataBase.query(projection, null, null, null);
cursor .registerContentObserver(new ChangeObserver());

private class ChangeObserver extends ContentObserver {
    public ChangeObserver() {
        super(new Handler());
    }

    @Override
    public boolean deliverSelfNotifications() {
        return true;
    }

    @Override
    public void onChange(boolean selfChange) {
        Log.d(Constants.TAG, "ChangeObserver.onChange");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我更改数据库(删除/更新/添加行)时,将永远不会调用ContentObserver的onChange方法.所以我想知道什么情况会触发ContentObserver?

sqlite android

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

以编程方式安装Android APK

现在,我想以编程方式安装另一个apk,它存在于我当前的apks资产中.但是,我无法先将apk复制到sdcard,因为sdcard没有挂载.

有可能的解决方案吗?谢谢.

android

0
推荐指数
1
解决办法
1474
查看次数