简而言之,DAO
@Query("DELETE FROM Things WHERE someIdOfTheThing IN (:listOfId)")
abstract fun deleteThings(listOfId: MutableList<String>): Maybe<Int>
Run Code Online (Sandbox Code Playgroud)
用法,
mDisposables.add(mThingsDao
.deleteThings(listOfId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
...
}, {
...
})
)
Run Code Online (Sandbox Code Playgroud)
和错误,
// Cannot access database on the main thread since it may potentially lock the UI for a long period of time.
Run Code Online (Sandbox Code Playgroud)
我当时想到的简单想法是先指定subscribeOn(Schedulers.io())
然后将所有工作交给Rx的魔术师,但失败了。
那我想念的是什么?
在像下面那样包装并使用后deleteThingsWrapped
,开始工作。但是仍然不明白为什么第一种方法不起作用
open fun deleteThingsWrapped(listOfId: MutableList<String>): Maybe<Int> {
return Maybe.create(object : MaybeOnSubscribe<Int> {
override fun subscribe(emitter: MaybeEmitter<Int>) {
emitter.onSuccess(deleteThings(listOfId))
}
})
}
@Query("DELETE FROM Things WHERE someIdOfTheThing IN …
Run Code Online (Sandbox Code Playgroud) 我有一个从Google Places API获得的地方ID,其目的是通过地址ID打开Google地图应用,如下面的类似方法
Uri gmmIntentUri = Uri.parse(String.format(Locale.ENGLISH,"geo:%f,%f", lat, lon));
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
Run Code Online (Sandbox Code Playgroud)
有办法吗?
当用户输入例如来自地方API的"艾菲尔铁塔"时,我已经具有纬度,经度.我将这些值存储在下一个用法中(假设我们列出了一些来自本地数据库的访问位置,用户点击其中一个,app导航到Google Maps)
我有一些担忧
如果我使用纬度 - 经度在Google地图上指示地点而不是地点ID,那么如果"Cafe XYZ"移动到另一条街道会发生什么?
如果我每次使用地方ID来接收"Cafe XYZ"的最后位置(而不是我本地数据库中存储的值),该应用程序很容易达到请求限制
所以这些问题让我想到了一种只发送地点ID Google Maps的方式(比如发送坐标)
我想使用这个启动画面但它继续在导航栏下面.
如何在保持导航栏的同时强制它适合屏幕?
<style name="splashScreenTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen">
<item name="android:windowBackground">@drawable/splash</item>
</style>
Run Code Online (Sandbox Code Playgroud) 虽然运行/构建工作正常,但 Android studio 在几个小时后就开始出现此错误。顺便说一句,我确信我从未添加/修改对项目的任何依赖项。
\nExecution failed for task ':app:checkPrepReleaseAarMetadata'.\n> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction\n > The minCompileSdk (31) specified in a\n dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)\n is greater than this module's compileSdkVersion (android-30).\n Dependency: androidx.core:core-ktx:1.7.0-alpha02.\n AAR metadata file: /Users/userxyz/.gradle/caches/transforms-2/files-2.1/cefbfad6ef180119f5f4851a3efddbb7/jetified-core-ktx-1.7.0-alpha02/META-INF/com/android/build/gradle/aar-metadata.properties.\n
Run Code Online (Sandbox Code Playgroud)\n我\xe2\x80\x99尝试过什么:
\nAndroid studio版,北极狐2020.3.1
\n