小编jit*_*555的帖子

Firebase数据库不提交在线数据阻止监听器

我正在使用Firebase数据库服务来同步用户数据.我启用了离线兼容性,问题是在使用几个月后,用户数据显然没有提交到在线数据库,因为用户电话系统阻止了应用程序的互联网连接.

在某些情况下,我设法引导用户启用"无限数据使用"选项,但并不适用于所有人.

在我的情况下,问题是听众:

void onDataChange(DataSnapshot var1);
Run Code Online (Sandbox Code Playgroud)

ValueEventListener当大量数据脱机存储而未提交时,不会触发from ,并阻止所有行为.

我没有在线存储限制,因为我有Blaze计划(支付消费).

事务也未提交,并触发"事务被后续集覆盖",错误代码为-9.

Firebase提供的连接检测器始终打印"未连接"

我也尝试过替代goOffline(),goOnline()但没有任何反应.

我不明白为什么手机会阻止我的应用程序同步,让像Facebook和Youtube这样的应用程序消耗大量的互联网数据.

此行为仅在Android设备上发生,在使用相同Firebase数据库的iOS手机上没有问题.

无法使用4g,WI-FI或VPN(使用Opera VPN).

更新1:

日志在启动时包含~10次:

11-13 21:12:28.477 15765 15856 D PersistentConnection: pc_0 - Scheduling connection attempt
11-13 21:12:28.477 15765 15856 D ConnectionRetryHelper: Scheduling retry in 26091ms
11-13 21:12:54.597 15765 15856 D PersistentConnection: pc_0 - Trying to fetch auth token
11-13 21:12:55.747 15765 15856 D PersistentConnection: pc_0 - Error fetching token: An internal error has occurred. [ 
TOKEN_EXPIRED ] …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

6
推荐指数
1
解决办法
498
查看次数

带有TabLayout的ViewPager与AnimatedVectorDrawable有关

我正在尝试使用VectorDrawable上的一些动画实现简单的ViewPager.
遵循这个非常好的示例解决方案,用于使用点切换进行漂亮的标签滚动.

唯一的区别是我正在使用矢量动画.作为一项活动,它就像一个魅力,添加了ViewPager,动画不会始终如一地启动.

compileSdkVersion 25
buildToolsVersion "26.0.2"
targetSdkVersion 25
Run Code Online (Sandbox Code Playgroud)

我正在我的设备上调试(SG7),我在animation.start()上设置了断点

  • 在中间屏幕上,并不总是调用断点
  • 更常见的是在屏幕1和3上,不会触发动画
  • 当使用点跳跃时,总是会触发1到3个动画!但不是1-2或2-3做!!

所有这一切都在一个大的VectorDrawable上工作,其中3组是动画的.
2个字幕在开始时滑动,然后无限滚动旋转,旋转始终工作.

活动

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mHideHandler.post(mHidePart2Runnable);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabDots);
    tabLayout.setupWithViewPager(mViewPager, true);

    };
Run Code Online (Sandbox Code Playgroud)

分段:

  public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called …
Run Code Online (Sandbox Code Playgroud)

user-interface android android-viewpager android-fragmentactivity android-vectordrawable

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

Gulp 4:如何检测"您是否忘记发信号异步完成?" 复杂构建脚本中的错误

正如已经迁移到Gulp 4的人可能知道的gulp.series那样 - 如果系列中的任务没有正确地表示完成,则不会继续执行.

我的问题是它处理这种错误的方式 - 它只是控制台中的一条消息(你忘了发信号异步完成吗?) ; gulp仍然以错误代码0退出.这意味着如果你在一个更复杂的构建脚本中运行gulp,那么看起来好像一切都没问题,并且当他们显然没有成功完成gulp任务时.(相反,如果抛出错误gulpUtil.plugin error,则会导致非0错误代码.)

所以我的问题是:你如何从外部发现这样的错误?

  • 在这种情况下,有没有办法让gulp退出非0?(是否有我可以订阅的事件并抛出错误,或者我可以设置的配置等)
  • 我应该尝试检查应该生成的资产是否存在?(我发现这个解决方案非常脆弱.)
  • 我应该"观察"控制台消息并查找特定的字符串,例如"你忘了发信号......"吗?(啊!)
  • (是的,我知道我可以用一口气做所有事情然后我不需要检查错误代码,但我们只是假设,实际上,我不能.)

还有其他我没想过的可能性吗?

terminal error-code gulp gulp-4

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

JobScheduler可以执行前台服务吗?

可能吗?我需要启动前台服务,因为我在UI线程中使用它,

示例:每25分钟在我的应用中播放视频,即关闭.

android android-service

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

如何从 Flutter 中的方法获取 AlertDialog 回调?

我有AlertDialog静态方法,因为我想在用户单击OK按钮时获得回调。

我尝试使用typedef但无法理解。

以下是我的代码:

class DialogUtils{

  static void displayDialogOKCallBack(BuildContext context, String title,
      String message)
  {
    showDialog(
      context: context,
      builder: (BuildContext context) {
         return AlertDialog(
          title: new Text(title, style: normalPrimaryStyle,),
          content: new Text(message),
          actions: <Widget>[
            new FlatButton(
              child: new Text(LocaleUtils.getString(context, "ok"), style: normalPrimaryStyle,),
              onPressed: () {
                Navigator.of(context).pop();
                // HERE I WANTS TO ADD CALLBACK
              },
            ),
          ],
        );
      },
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

function callback flutter flutter-alertdialog

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

从数据库+网络加载数据(Room + Retrofit + RxJava2)

我有一个示例API请求,它返回用户监视列表的列表.我想在用户加载监视列表屏幕时实现以下流程:

  1. 立即从DB缓存加载数据.(cacheWatchList)

  2. 在后台启动RetroFit网络呼叫.

    一世.onSuccess返回apiWatchList
    ii.onError返回cacheWatchList

  3. Diff cacheWatchListvs.apiWatchList

    一世.相同 - >一切都很好,因为数据已经显示给用户什么都不做.

    II.不同 - >保存apiWatchList到本地商店并发apiWatchList送到下游.

到目前为止我做了什么?

Watchlist.kt

data class Watchlist(
  val items: List<Repository> = emptyList()
)
Run Code Online (Sandbox Code Playgroud)

LocalStore.kt(Android室)

  fun saveUserWatchlist(repositories: List<Repository>): Completable {    
    return Completable.fromCallable {      
      watchlistDao.saveAllUserWatchlist(*repositories.toTypedArray())
    }
  }
Run Code Online (Sandbox Code Playgroud)

RemoteStore.kt(改造api调用)

  fun getWatchlist(userId: UUID): Single<Watchlist?> {
    return api.getWatchlist(userId)
  }
Run Code Online (Sandbox Code Playgroud)

DataManager.kt

  fun getWatchlist(userId: UUID): Flowable<List<Repository>?> {
    val localSource: Single<List<Repository>?> =
      localStore.getUserWatchlist()
        .subscribeOn(scheduler.computation)

    val remoteSource: Single<List<Repository>> …
Run Code Online (Sandbox Code Playgroud)

android retrofit2 rx-java2 android-room

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

XML颜色用于矩形的弯曲边缘之外的区域

我正在为RelativeLayout的背景制作一个矩形,并想知道如何使该矩形的圆角边缘之外的区域也变为darker_grey.目前,只有这个矩形的内部是darker_grey

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="@android:color/darker_gray" />
    <stroke android:width="1dip" android:color="@android:color/black"/>
    <corners android:radius="20dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

xml android shape android-studio

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

如何清除除颤动中的 2 个键之外的所有 SharedPreferences 键

我试图在注销期间清除 SharedPreferences 的所有键值,除了 2 个键"EmailID""Password". 正如我们所知,有在扑允许的,所以我不能做一个不同的实例存储仅单个SharedPreferences实例"EmailID""Password"并删除特定的键是不是一个好的做法,以除去20+键。如果我使用prefs.clear();它会清除所有关键值,任何帮助都非常感谢。

sharedpreferences dart flutter

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

每个片段的工具栏都会导致内存问题

我在我的应用程序中为每个片段指定了工具栏.

以下是要设置工具栏的片段中的代码.setToolbar是一种Activity使用接口从片段调用的方法.

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Toolbar toolbar = view.findViewById(R.id.toolbar);
    if (mListener != null) {
        mListener.setToolbar(toolbar);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,因为当片段被破坏时我没有删除工具栏,导致内存泄漏.我想知道我应该在哪里删除工具栏片段以及如何删除.

知道我应该在哪里以及如何发布片段中的工具栏?

根据我之前提出的问题我可以分别为每个片段设置工具栏.如何处理导航抽屉我被告知我可以在每个片段中有一个工具栏但现在我面临内存泄漏.

android android-fragments android-activity android-toolbar

3
推荐指数
1
解决办法
487
查看次数

Flutter:Git 分支引用未在 pubspec.lock 中更新

向 Flutter 社区提出的问题:)

正如问题所示pubspec.lock不更新分支的当前参考

例如,如果我将以下依赖项添加到puspec.yamllike

my_repository:
    git:
      url: https://github.com/jitesh/my_repository.git
      ref: develop
Run Code Online (Sandbox Code Playgroud)

这将我的 pubspec.lock 更改为

my_repository:
    dependency: "direct main"
    description:
      path: "."
      ref: develop
      resolved-ref: "commit id 1"
      url: "https://github.com/jitesh/my_repository.git"
Run Code Online (Sandbox Code Playgroud)

当我们获得最新的提交时,这似乎是正确的,如果我们第一次在 中添加依赖项puspec.yaml,但是如果有人将一些更改推送到开发分支my_repository.git上,并且您想要这些更改,那么即使在执行后它也不会得到,并给出与以下相同的结果 pub get

my_repository:
        dependency: "direct main"
        description:
          path: "."
          ref: develop
          resolved-ref: "commit id 1"
          url: "https://github.com/jitesh/my_repository.git"
Run Code Online (Sandbox Code Playgroud)

理想情况下,它应该更改resolved-refresolved-ref: "commit id 2"当最新提交被推送到开发分支时,

我遵循的黑客方法是pubspec.lock使用最新的提交手动升级,我还在某处读到了颤振升级也确实获得了最新的提交,但对我来说,仅获得一个存储库提交似乎需要更长的过程。

你们遵循哪些标准做法?

flutter

3
推荐指数
1
解决办法
2116
查看次数