小编Gre*_*lli的帖子

如何在Android Room中完全重新创建数据库?

我有一种情况,我希望能够使用Android Room硬重置我的数据库.使用SQLiteOpenHelper,我可以通过编写一个方法来删除所有表和索引,然后手动调用SQLiteOpenHelper.onCreate().

我知道我可以访问一个SupportSQLiteOpenHelper通风室并自己丢弃所有表格,但似乎没有一个好方法来启动娱乐过程.

另外,我知道我可以删除每个表中的每个项目而不删除它,但这不是我想要的.这不会重置自动递增主键,因此新项目的"id"字段不会重置为1.

谢谢!

编辑:
这是我希望能够在运行时任意做的事情.

编辑2:
该方法应该是可维护的,即不涉及手写符合Room行为的SQL.理想情况下,可以通过某种方式检索 Room生成的SQL或SQLiteOpenHelper.onCreate()等效方法.或其他任何解决这个问题的方法!:)

android-room

15
推荐指数
2
解决办法
8626
查看次数

如何在新标签页的Chrome扩展程序中从多功能框中窃取焦点?

我正在制作Chrome扩展程序,其中包括在新标签页上放置文本输入,并在加载新标签页时立即将焦点放在该输入文本上.在使用传统方法无法获得焦点后(例如focus()),我偶然发现了这个问题:

Chrome 27:新标签页扩展程序无法从Omnibox中窃取焦点

这表明Chrome现在已经做到了这一点,因此您无法将多功能框关注于新的标签页.鉴于Chrome可以将焦点放在任何不是新标签页的网站上,我一直试图提出解决方法,但没有什么是真正令人满意的.

我试过了:

  • 让新标签页立即重定向到本地存储的HTML文件,但这仍然没有给予焦点,因为页面在重定向时从未有过焦点.

  • 在内容脚本中覆盖ctrl + t和cmd + t,以打开包含本地存储的HTML文件内容的新选项卡.这工作正常,除了它似乎无法覆盖cmd + t,因此Mac用户将被迫使用ctrl + t.此外,一些网站(例如OneNote在线编辑器)接管ctrl + t,因此它不适用于每个页面.

  • 远程托管页面并将新标签页重定向到它(太慢).

  • 在打开新标签时,建议用户按两次选项卡以关注输入文本:)

有没有人对你如何解决这个限制有任何其他建议?这对我的扩展非常重要.

谢谢!

javascript google-chrome focus google-chrome-extension omnibox

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

如何欺骗位置在Android上使用LocationClient和Geofences进行测试?

我一直在使用LocationClient并设置了一个Geofence,但不知道如何测试它.

问题来自于您无法在模拟器中运行应用程序,因为模拟器中不可用的LocationClient用途GooglePlayServices.你也不能使用MockLocations我所知道的,因为你MockLocations通过创建一个Provider来使用,并且LocationClient不允许你设置一个Provider.

那么......我该怎么测试我的Geofence?(除了上车......).

java gps android location

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