我正试图在我的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) 在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) 在Firebase中,我尝试根据登录到我们正在开发的Android应用程序的用户的受众群体成员身份来设置一些RemoteConfig参数,这些参数应具有不同的值。
问题是我不允许基于受众设置RemoteConfig条件。该选项显示为灰色。此外,如果我尝试在Firebase Analytics中查看由我的受众过滤的事件,则不会显示任何事件。
我了解我需要通过RemoteConfig定位目标受众,使其“合理地发展”(https://support.google.com/firebase/answer/6317509?hl=zh_CN)
因此,我按照以下步骤填充了观众:
我已经重复了大约20次,并等待了48个小时。观众(“小巴”)现在列出了23位成员:
但是,我仍然不能将受众群体用作RemoteConfig中的条件,也不能基于该受众群体在Firebase Analytics中过滤事件。
我尝试在Firebase控制台中查看DebugView,可以看到用户将正确的属性“ chain_id”设置为524,因此该事件应与受众群体匹配。
我想念什么吗?
我正在学习使用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?