小编Rin*_*nav的帖子

带有RxAndroid + Retrofit的Android MVP

最近我开始阅读很多关于MVP的内容,我想用它练习我的项目.

但是我无法正确理解Rx + Retrofit代码应该去哪里?我认为应该通过Interactors在Model Layer中,但仍然可以有人对此有所了解吗?

RX回调会发生什么?onNext(),onCompleted()和onFailure()将数据传递回Presenter,还是我们实现了侦听器,然后将其传递给Presenter?

当我在onNext()中获取数据时,我还想保留数据(Realm/StorIO),所以再次将它传递给另一个DataLayer或它应该去哪里?

我们还应该进一步解耦Rx回调吗?

我关注这篇文章 https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

这个来自antonioleiva.com的单独github回购 https://github.com/antoniolg/androidmvp

mvp android design-patterns rx-java rx-android

10
推荐指数
2
解决办法
7646
查看次数

与所有活动共享NavigationView?

我们如何Drawer与所有活动分享?

在制表:onNavigationItemSelectedsetNavigationItemSelectedListener我们可以得到id和导航.我要找的是这样的:

private void initDrawerLayout() {
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        NavigationView navView = (NavigationView) findViewById(R.id.navigation_view);
        navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {


        Intent intent;
        int id = menuItem.getItemId();

        switch(id) {

            case R.id.home:
            case R.id.drawer_home:
            // call activity instead of adding/replacing fragment
            return true;

            case R.id.drawer_gallery:
            // call activity instead of adding/replacing fragment
            intent = new Intent(MainActivity.this, GalleryActivity.class);
            startActivity(intent);
            return true;

            case R.id.drawer_about:
            // call activity instead of adding/replacing fragment
            intent …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-fragments navigationview android-support-design

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

Firebase任务尚未完成

我在退出Firebase后使用FirebaseAuth.getInstance().signOut();并再次登录后随机获取以下异常

我试图在用户成功通过身份验证后从FirebaseUser获取令牌 signUpRequest.firebaseToken = user.getIdToken(true).result?.token

user是身份验证后收到的FirebaseUser

E/AndroidRuntime: FATAL EXCEPTION: main
   Process: agrahyah.keen, PID: 12082
   java.lang.IllegalStateException: Task is not yet complete 
       at com.google.android.gms.common.internal.zzbp.zza(Unknown Source)
       at com.google.android.gms.tasks.zzn.zzbic(Unknown Source)
       at com.google.android.gms.tasks.zzn.getResult(Unknown Source)
       at com.xxxActivity.makeSignUpRequest(xxxActivity.kt:129)
       at com.xxxActivity.access$makeSignUpRequest(xxxActivity.kt:36)
       at com.xxxActivity$signInAnonymously$1.onComplete(xxxActivity.kt:94)
       at com.google.android.gms.tasks.zzf.run(Unknown Source)
       at android.os.Handler.handleCallback(Handler.java:751)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6077)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Run Code Online (Sandbox Code Playgroud)

我正在使用Firebase android sdk版本11.2.2.以前版本的Firebase SDK中从未出现此错误

android kotlin firebase firebase-authentication google-signin

9
推荐指数
3
解决办法
7311
查看次数

具有合成视图的ViewBinding vs Kotlin Android扩展

新的ViewBinding与带有合成视图绑定的Kotlin Android扩展相比如何?

除了新ViewBindings提供的NullSafety和TypeSafety之外,我们为什么还要考虑放弃在Views上使用合成绑定的Kotlin方法。

由于新的ViewBinding事先生成了Binding类,因此它的性能更高吗?

android kotlin kotlin-android-extensions android-viewbinding

9
推荐指数
4
解决办法
357
查看次数

当我们尝试测试功能时,该应用没有出现在 Android Auto 屏幕中

我在 Playstore 上有一个音频播放器应用程序,想添加对 AndroidAuto 的支持。进行必要的更改后,当我将新的 apk 上传到 Playstore 时,它​​被拒绝并收到了以下来自 Play 的电子邮件

当他们说应用程序没有出现在屏幕上时,这是什么意思?我在清单中有所有必需的条目,使我的服务可以浏览。我不明白缺少什么。

我能够在真正的 android 设备上测试该应用程序,并且它可以正常运行。

---------- 来自 google play 的电子邮件 ----------

应用状态:您的应用尚未被 Android Auto 接受,并且更新未在 Google Play 上发布。

APK 版本的资格问题: 当我们尝试测试功能时,该应用没有出现在自动屏幕中

考虑用于 Android Auto:

  • 对您的应用程序进行必要的更改。
  • 增加升级后的 APK 的版本号。
  • 提交您的应用以供再次审核。

或者,如果您想从 Android Auto 中排除您的应用:

  • 从您的 APK 代码中删除 Android Auto 清单条目。
  • 登录您的 Play 管理中心并上传新的 APK。
  • 单击提交更新。

有关应用如何符合 Android Auto 资格的更多详细信息,您可以查看 Android Auto 应用质量指南。

如果您认为我们做出的此决定有误,请向我们的团队提交其他信息,我们将再次审核您的应用。

感谢您支持 Google Play,

Google Play 团队

android google-play android-auto mediabrowserservice android-automotive

9
推荐指数
0
解决办法
723
查看次数

adb 命令使用 workmanager 列出所有计划的工作

是否有 adb shell (dumpsys) 命令可以提供使用 workmanager - PeriodicWorkRequest 安排的所有任务的详细信息

基本上我有一个应该每天运行的计划任务。我如何获得使用 adb 安排的下一个任务的时间。

adb shell dumpsys alarm package.name使用 workmanager 列出我的预定工作

android adb android-workmanager

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

如何获得git标签的总数

我想获取存储库中标签计数的总数

grgit库已经解决了这个问题。

git = org.ajoberstar.grgit.Grgit.open()
git.tag.list().size()
Run Code Online (Sandbox Code Playgroud)

但它在 groovy 中,我想要它的 gradle 版本。

git describe --tags $(git rev-list --tags --count)
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了提交的总数

到目前为止,我有以下代码段可以获取提交的总数。

versionCode = { ->
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'rev-list', '--first-parent', '--count', 'HEAD'
            standardOutput = stdout
        }
        return Integer.parseInt(stdout.toString().trim())
    }
    catch (ignored) {
        return -1
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经引用了这个 SO 问题,但没有正确的答案

versioning git gradle android-gradle-plugin

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