小编Rav*_*mar的帖子

Room Invalidation tracker初始化两次

我有一个水平的回收站视图,里面有自定义项目.每个项目都可以在Recycler视图中保存当前项目的位置.我想使用拖放移动项目时更新项目位置.但是当水平视图中有三个以上的项目时,数据会被删除.请帮帮我. 源代码

这是我在Logcat中得到的:

E/ROOM:无效跟踪器初始化两次:/.

E /项目已移动:Counterfrom3

下一个项目:to2

在onCreate中初始化数据库.

 db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, DB_NAME)
                .fallbackToDestructiveMigration()
                .allowMainThreadQueries()
                .build();
Run Code Online (Sandbox Code Playgroud)

RecyclerView适配器代码.

@Override
public boolean onItemMove(int fromPosition, int toPosition) {
    String name = dataSet.get(fromPosition).getName();
    //this will make "Add item" do not move from its first position..
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        if (!(Objects.equals(name, "Add") || (toPosition == 0 && fromPosition == 1))) {
            Collections.swap(dataSet, fromPosition, toPosition);
            MoveItem(fromPosition, toPosition);
            notifyItemMoved(fromPosition, toPosition);
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

移动项目时更新数据的代码.

 public static void MoveItem(int fromPosition,int toPosition){
        String …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview android-room

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

如何使用 Android x 制作自定义 DialogPreference?

Android x 中DialogPreference被移动到DialogPreferenceCompat。因为有很多方法可以在首选项设置中进行自定义布局

我正在寻找更干净、更好的方法来制作自定义布局,单击该布局时会打开Custom Number Picker Dialog Box。我想用一个按钮制作自定义布局。

我现在面临的问题是DialogPreference 中没有 onCreateDialog覆盖方法,我不确定如何进行更改。看起来由于在 android x 中使用了DialogPreferenceCompat,我的大部分代码都被破坏了。

如何进行正确的代码更改?有很多方法可以编写自定义首选项布局,但我不知道哪一种是好的。

在此处输入图片说明

android preferences android-preferences android-fragments

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

何时使用 PreferenceFragment 和 PreferenceFragmentCompat?

我只是一个初学者,但我对支持库有一些疑问。

  1. 每次谷歌团队添加一个新的支持版本时,它都会弃用在新版本中的使用,因此我们不得不再次重做代码以支持新的 API 级别。难道不是这样的,你可以拥有这个库,但你将不会获得额外的功能。而不是仅仅弃用整个工作?因此,在制作 Android 应用程序时有很多额外的工作要做。
  2. 为什么 PreferenceFragment 在Android P 中被弃用,PreferenceFragment 和 PreferenceFragmentCompat库的支持版本是什么还有哪些附加功能

Android 平台很棒,但很难理解这些东西。如果开发人员已经制作了一个应用程序,那么当 android 发布新版本时它会工作的保证是什么?每个版本都会弃用某些功能或整个库。

android android-preferences android-support-library android-9.0-pie

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

在 api 27、28、29 中混淆应用程序时,工作管理器不会运行

我有一个每 15 分钟运行一次的定期任务。

当混淆应用程序时。如果应用程序从后台被终止,工作管理器将不起作用。

测试设备:一加7T、诺基亚5+、Google Pixel 2模拟器

仅当应用程序位于前台或后台时,工作管理器才会执行。

禁用 proguard 工作管理器在所有 3 种情况下都有效

  1. 该应用程序位于前台

  2. 该应用程序在后台运行

  3. 该应用程序从后台被杀死

根据我在https://issuetracker.google.com/issues/160492142#上提出的问题

proguard 文件中可能存在问题。

 #noinspection ShrinkerUnresolvedReference
 -keepattributes *Annotation*
 -keepattributes SourceFile,LineNumberTable
 # prevent Crashlytics obfuscation
 -keep class com.crashlytics.** { *; }
 -dontwarn com.crashlytics.**
 
 
 -keep public class * extends java.lang.Exception
 -keep class com.google.android.gms.measurement.AppMeasurement { *; }
 
 
 ###################################################################################################
 
 # Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and
 # EnclosingMethod is required to use InnerClasses.
 -keepattributes Signature, InnerClasses, EnclosingMethod
 
 # Retrofit does reflection …
Run Code Online (Sandbox Code Playgroud)

android proguard workmanagers android-workmanager

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

在 Android 上实施 Flutter App Check 破坏 Firebase 存储

Firebase 存储不断引发身份验证问题。即使我能够成功从 firebase auth 实例获取用户信息

通过使用

Miscellaneous.logMessage(
      Tag, "currentUser ${FirebaseAuth.instance.currentUser}");
Run Code Online (Sandbox Code Playgroud)

应用程序检查当前应用程序中的设置

- 在 yaml 文件中添加依赖项

  firebase_core: ^1.13.1
  firebase_analytics: ^8.3.4
  firebase_auth: ^3.3.11
  cloud_firestore: ^2.5.4
  firebase_crashlytics: ^2.5.3
  firebase_messaging: ^10.0.9
  firebase_database: ^7.2.2
  firebase_storage: ^10.2.9
  firebase_app_check: ^0.0.6+7
Run Code Online (Sandbox Code Playgroud)

-并在main.dart中添加了这段代码

Future<void> main() async {

    WidgetsFlutterBinding.ensureInitialized();
    
      await Firebase.initializeApp();
    
      await FirebaseAppCheck.instance.activate(
        webRecaptchaSiteKey: 'recaptcha-v3-site-key',
      );

}
Run Code Online (Sandbox Code Playgroud)

- Android 中的设置

摇篮

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: ['*mock*.jar'])
    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation("androidx.browser:browser:1.4.0")
    implementation platform('com.google.firebase:firebase-bom:28.2.1')
    implementation 'com.google.android.material:material:1.5.0'
    implementation 'com.google.android.gms:play-services-auth:20.1.0'
    implementation 'com.google.android.gms:play-services-auth-api-phone:18.0.1'
    implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta04'
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04' …
Run Code Online (Sandbox Code Playgroud)

android firebase flutter firebase-storage firebase-app-check

5
推荐指数
0
解决办法
590
查看次数

如何使用工作链观察工作管理器中的实时数据?

我有 3 个任务 A、B 和 C。我想观察这条链的实时数据,并有一个进度条显示正在进行的工作,一旦工作完成,它应该禁用进度条。

    // One Time work for A class
         OneTimeWorkRequest Awork = new OneTimeWorkRequest
                          .Builder(A.class)
                          .setConstraints(Miscellaneous.networkConstraint())
                          .addTag("A")
                          .build();
            //same for B and C
            //work chain 
           WorkContinuation syncChain = WorkManager.getInstance()
                              .beginWith(Awork)
                              .then(Bwork)
                              .then(Cwork);

         syncChain.enqueue();
Run Code Online (Sandbox Code Playgroud)

android android-livedata android-workmanager

4
推荐指数
2
解决办法
4809
查看次数

Flutter Webview 抛出编译错误 -ThreadedInputConnectionProxyAdapterView location: class InputAwareWebView

我正在使用 Webview 版本

webview_flutter:^2.0.6

运行时 android studio 抛出此错误并停止构建

操作系统版本

minSdkVersion 19

目标SDK版本30

A:\flutter.pub-cache\hosted\pub.dartlang.org\webview_flutter-2.0.6\android\src\main\java\io\flutter\plugins\webviewflutter\InputAwareWebView.java:31: 错误:找不到符号私有 ThreadedInputConnectionProxyAdapterView proxyAdapterView; ^ 符号:类 ThreadedInputConnectionProxyAdapterView 位置:类 InputAwareWebView

A:\flutter.pub-cache\hosted\pub.dartlang.org\webview_flutter-2.0.6\android\src\main\java\io\flutter\plugins\webviewflutter\InputAwareWebView.java:112: 错误:找不到符号new ThreadedInputConnectionProxyAdapterView( ^ 符号:类 ThreadedInputConnectionProxyAdapterView 位置:类 InputAwareWebView 注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。2 个错误

FAILURE:构建失败,出现异常。

如何修复此错误?

android flutter flutter-web

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