小编Kje*_*ide的帖子

在Robolectric中测试SQLite数据库

我正试图在我的Android应用程序中使用Robolectric测试一个简单的SQLite数据库.我正在输入一些值,但在读取它们时会返回0行.

我正在使用SQLiteOpenHelper类来访问数据库.

// RequestCache extends SQLiteOpenHelper
RequestCache cache = new RequestCache(activity); 
SQLiteDatabase db = cache.getWritableDatabase();

// Write to DB
ContentValues values = new ContentValues();
values.put(REQUEST_TIMESTAMP, TEST_TIME); 
values.put(REQUEST_URL, TEST_URL);
db.insertOrThrow(TABLE_NAME, null, values);

// Read from DB and compare values      
Vector<Request> matchingRequests = new Vector<Request>();
db = cache.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, SEARCH_URL_RETURN_COLUMNS, SEARCH_URL_WHERE, new String[] {url}, null, null, ORDER_BY, null);
int id = 0;

while(cursor.moveToNext()) {
    long timestamp = cursor.getLong(0);
    Request request = new Request(id++);
    request.setUrl(url);
    request.setCreationTimestamp(new Date(timestamp));
    matchingRequests.add(request);
}


// …
Run Code Online (Sandbox Code Playgroud)

sqlite android robolectric

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

Android JobScheduler无法在模拟器上启动

在Android模拟器上运行时,我无法让JobScheduler启动预定作业.如果我在真正的三星Galaxy S7和Nexus 5X上进行测试,两者都运行Android 6.0.1,那么预定的作业会立即开始.仿真器配置为具有100%电池和充电以及启用的全网速.

在OSX El capitan 10.11.4上运行Android Studio 2.1.1,jre 1.8.0_92-b14.仿真器版本是25.1.6,它运行的是Android 6.0.

这就是我安排工作的方式:

public static void sendInspectionSessions(Context context) {
    JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    JobInfo job = new JobInfo.Builder(
            INSPECTION_SESSION_JOB_ID,
            new ComponentName(context, InspectionSessionJobService.class))
            .setBackoffCriteria(TimeUnit.SECONDS.toMillis(30), JobInfo.BACKOFF_POLICY_EXPONENTIAL)
            .setPersisted(true)
            .setMinimumLatency(0)
            .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
            .setOverrideDeadline(Config.INSPECTION_SESSION_SEND_DEADLINE)
            .build();
    int id = js.schedule(job);
    if (id > 0) {
        LogUtil.i(TAG, "Scheduled InspectionSession send job with id " + id + ". Supplied id was " + INSPECTION_SESSION_JOB_ID);
    } …
Run Code Online (Sandbox Code Playgroud)

android android-emulator

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

Firebase RemoteConfig和受众条件

在Firebase中,我尝试根据登录到我们正在开发的Android应用程序的用户的受众群体成员身份来设置一些RemoteConfig参数,这些参数应具有不同的值。

问题是我不允许基于受众设置RemoteConfig条件。该选项显示为灰色。此外,如果我尝试在Firebase Analytics中查看由我的受众过滤的事件,则不会显示任何事件。

我在Firebase中的受众群体配置如下所示: Firebase受众群体配置

我了解我需要通过RemoteConfig定位目标受众,使其“合理地发展”(https://support.google.com/firebase/answer/6317509?hl=zh_CN

因此,我按照以下步骤填充了观众:

  1. 安装软件
  2. 应用程序会使用自定义用户属性“ chain_id”设置触发“登录”事件。
  3. 卸载应用
  4. 重置广告ID(如此处所述/sf/answers/2742851261/

我已经重复了大约20次,并等待了48个小时。观众(“小巴”)现在列出了23位成员:

在此处输入图片说明

但是,我仍然不能将受众群体用作RemoteConfig中的条件,也不能基于该受众群体在Firebase Analytics中过滤事件。

我尝试在Firebase控制台中查看DebugView,可以看到用户将正确的属性“ chain_id”设置为524,因此该事件应与受众群体匹配。

我想念什么吗?

firebase firebase-analytics firebase-remote-config

3
推荐指数
1
解决办法
1015
查看次数

Roboguice注射系统服务

我正在学习使用Roboguice,我在理解如何注入系统服务方面遇到了麻烦.我见过的所有例子都是注入活动,但我想将它注入POJO.我正在使用Roboguice 2.0 beta 3

我有一个PhoneNumber类,并希望注入TelephonyManager服务.

public class PhoneNumber {
    @Inject TelephonyManager mTelephonyManager;

    protected Integer getNetworkCountryPrefix() {

        // This gives a null pointer exception 
        mTelephonyManager.getNetworkCountryIso();
    }
}
Run Code Online (Sandbox Code Playgroud)

注入扩展RoboActivity的类时,一切正常.但是,是否可以在不扩展RoboActivity的类中注入TelephonyManager?

android dependency-injection guice roboguice

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