小编Cra*_*ell的帖子

合并一个Observable列表并等待所有完成

TL; DR 如何转换Task.whenAll(List<Task>)RxJava

我现有的代码使用Bolts构建异步任务列表,并等待所有这些任务完成后再执行其他步骤.从本质上讲,它构建一个List<Task>并返回一个单独的Task,当列表中的所有任务完成时,按照Bolts站点上的示例标记为已完成.

我期待,以取代BoltsRxJava和我假设建立的异步任务列表(在事先不知道大小)和包装他们都到一个单一的这种方法Observable是可行的,但我不知道怎么办.

我试着看merge,zip,concat等...但不能去上工作List<Observable>,我会被建立,因为他们似乎都面向工作的只有两个Observables,如果我理解正确的文档在一个时间.

我正在努力学习RxJava并且仍然是新手,所以请原谅我,如果这是一个明显的问题,或者在某个地方的文档中解释过; 我试过搜索.任何帮助将非常感激.

java reactive-programming rx-java rx-android

76
推荐指数
3
解决办法
6万
查看次数

Activity.finishAffinity()vs Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

在Android中,如果要清除当前Activity堆栈并启动新堆栈Activity(例如,退出应用程序并启动登录Activity),则似乎有两种方法.

如果您的目标API级别高于16,那么一个优于另一个吗?

1)完成亲和力

finishAffinity()从活动中呼叫. Activity.finishAffinity

2)意图标志

Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)

finishAffinity()方法适用于> = API 16.

Intent标志的方法是适合于> = API 11.

需要明确的是,为了清除当前Activity堆栈,两种方法似乎也同样有效.我的问题是,人们是否经历过任何问题,因此,有没有理由选择其中一个?

flags android logout android-intent android-activity

25
推荐指数
1
解决办法
2万
查看次数