问题标签 [android-task]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Firebase 身份验证:如何验证用户仍然存在
我正在使用 Firebase 匿名身份验证。
如果用户已从 Firebase 控制台中删除,客户端仍然认为该用户存在,因为它仍然持有令牌。
每次启动应用程序时,我都想验证用户是否仍然存在。我发现我可以使用该FirebaseUser.reload()
功能。
该文档说,如果用户的帐户已被禁用或删除,FirebaseAuthInvalidUserException
将被抛出:
https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseUser.html#reload( )
然而,这是一个异步函数,我正在努力寻找如何捕获这个异常。任何人都可以向我展示如何捕获此异常的代码示例吗?我查看了所有文档,但没有找到关于此的示例。
android - Firebase 任务 whenAll 未按预期工作,跳过 OnCompleteListener
这是我的程序流程:
我可以创建一个学习会话,在此会话中,用户可以流式传输视频,和/或下载附件,和/或以多项选择格式回答问题。
因此,在一个会话中,它可以包含视频和/或文件和/或问题。
在创建会话的过程中,我必须完成所有视频和/或文件的上传任务,并完成所有数据库任务保存该会话的问题,然后才能将会话保存到数据库中。在这种情况下,我使用类似这样的东西
Tasks.whenAll(listTask)
,在其中添加onCompleteListener
到最终任务,最终将会话保存到数据库。几乎所有工作都按预期工作,已保存问题,已上传视频,但
UploadTask
上传视频后返回的问题存在问题。在我的Session
课堂上,我有videoUrl
一个包含视频网址的字段。为了获取视频的 url,我必须添加onCompleteListener
到 myUploadTask
,从任务结果中获取 url 并将 url 保存在我的类实例中。但是,视频 url 永远不会保存到数据库中,因为onCompleteListener
最终任务首先被调用。
我的问题是,如何执行 Tasks.whenAll(listTask),当 listTask 中的所有任务都完成时,它们的 onCompleteListener 也完成了?
android - 我的活动和片段在修改其启动模式后似乎运行了两次方法
我最近修改了我的项目,以便我可以处理由单个活动组成的“登录任务”和包含所有其他活动的“主要任务”。我通过清单做到了这一点:
现在,每次记录某些内容时,我都会开始看到重复的行。我首先认为每个活动/片段都有两个实例(不确定如何,真的),但事实并非如此,通过登录this.toString()
活动和片段可以看出:
当我启动时MainAcitivity
(其中ViewPager
包含四个片段),我还要设置正确的(?)标志:
从 Main 打开所有其他活动时,我不使用该标志,因为它们都指定MainActivity
为父项,尽管我认为它不相关。
是的,我已经阅读并浏览了官方文档,但仍然无法弄清楚发生了什么。
对我来说最奇怪的是这个应用程序是使用 MVP 构建的:每个 Activity 都有自己的 Presenter、View 和 Interactor,后者只负责从服务器获取数据。我为此实现了改造,交互者没有做这种重复,但演示者也显示重复的日志记录。
所以基本上我有两个问题:
- 为什么我得到双日志?
- 我是否正确处理了我想要实现的任务?- 我的直觉告诉我,我还需要指定
taskAffinity
所有其他活动都可以放在“主要任务”上
顺便说一句,我正在使用 Timber,而不是在每个 Activity 上种植树,而是在我的 App 类上
感谢您提供任何可能的建议。
android - 一个带有“singleTask”的活动怎么可能不是任务后台堆栈的根?
在这里阅读谷歌自己的文档,他们声明以“singleTask”启动模式启动一个活动将启动一个以该活动为根的新任务,或者,如果其中已经有一个包含该活动的任务,则整个任务的堆栈是提出,意图将通过现有活动的onNewIntent
方法进行路由。
然而,关于将整个任务活动堆栈向前推进,这张图片......
似乎将 Activity Y 的绿色任务显示为设置了“singleTask”。但是,活动 Y 不是根。Activity X 是,但这不应该是可能的,因为如果 Activity X 启动了 Activity Y,那么不会有第三个以 Activity Y 为根的任务吗?(起初我想也许 Activity X 启动了 Y 带有覆盖“singleTask”的标志,但我没有看到这样的标志。)
此外,撇开这个问题不谈,如果在 Activity 2 请求 Activity Y 之前,Activity Y 启动了一个新的 Activity Z,它只是一个标准启动模式,它似乎无法解释会发生什么。由于 Activity Y 是“singleTask”,而不是“singleInstance”,因此 Activity Z 将出现在与 Activity Y 相同的任务中,位于其后堆栈的顶部。
那么当 Activity 2 请求 Y 时 Z 会发生什么?这是否会使 X 和 Y 前进,但会破坏 Z,这意味着 Blue 任务刚刚在 Green 任务的后台堆栈中破坏了一个活动?...或者它是否提出了 X、Y 和 Z,这意味着即使您请求 Y,您现在正在查看 Z?
起初我以为是前者,但FLAG_ACTIVITY_CLEAR_TOP的文档也明确指出:
如果正在启动的 Activity 已经在当前任务中运行,那么不会启动该 Activity 的新实例,而是将其之上的所有其他 Activity 销毁,并将此 Intent 传递给该 Activity 的恢复实例(现在顶部),通过 onNewIntent())。
产生此行为的 launchMode 属性没有值。
此外,同样的场景。Activity 2(蓝色任务)启动 Activity Y(绿色任务),同时将其后退堆栈向前推进。用户点击主页按钮并重新启动创建蓝色堆栈的应用程序。它会跳回活动 2 吗?如果不是,那么就打破了所有意图和目的(没有双关语),任务就是应用程序的立场。
那么我错过了什么?
android - 在不冻结 UI 的情况下运行后台服务 android
我需要每 5 分钟后在设备存储中记录“一些文本”,有人可以指出我执行此操作的最佳方法。但我不希望主线程冻结,并且日志线程应该一直处于活动状态。我试过这个,但它似乎冻结了我的模拟器有没有更好的方法来做同样的事情
}
android - 在没有回调的情况下获取任务的结果
我目前正在尝试迁移我的所有位置调用以使用新的任务模型流,但我有一个问题是,有没有一种方法可以在无需等待回调的情况下获得任务结果?
我问的原因是因为在将某些内容保存到数据库之前,我需要获取异步任务中的最后一个位置,但是由于我已经在另一个线程中,所以我不必担心需要时间的事情,而且在内部没有回调异步任务不好?
文档说task.getResult()
只有在完成后才会给你一个结果
所以我的问题是,有没有办法同步执行?
以此为参考
https://developer.android.com/training/location/retrieve-current.html
android - 在 Android 中,从最近的应用视图中隐藏一些文本或视图
在 android 中出于安全原因,当应用程序移动到任务管理器中的最近应用程序时,我想隐藏一些文本或视图。我尝试通过以下方式处理此问题,但在进入生命周期之前,它会为最近的应用程序视图拍摄屏幕截图。
1. 内部onPause()
2. 内部onWindowFocusChanged()
3. 内部onUserLeaveHint()
所有以上在为最近的应用程序拍摄屏幕截图后调用 1. 它从未被调用onCreateThumbnail()
(我不想隐藏整个屏幕,只有 textviews 必须隐藏)请任何人有解决方案对于这个问题?
在 Android 8.0 中,它在暂停后执行,但早期版本如何处理。
android - 清除应用进程后通过 AlarmManager PendingIntent 启动活动
我的应用程序将允许用户设置触发活动的所需时间。我使用 AlarmManager 打开活动。下面是相同的代码。`
如果我将 PendingIntent 与 getActivity 一起使用,即使应用程序被杀死 AlarmNotification 也会出现。
如果我将 PendingIntent 与 getBroadcast 一起使用,如果应用程序终止,AlarmNotification 没有出现。
问题是从任务列表中清除应用程序进程后是否可以通过广播触发我的应用程序的通知活动。
如果是 - 请分享任何链接或示例代码 (TIA)
如果否 - 移动时钟应用程序如何在特定时间触发警报。我是否需要定义服务来实现这一点。
android - 选择器启动后使用后退按钮返回应用程序
鉴于这种:
我打开一个选择器供某人发送电子邮件。但是,如果用户按下回,我的启动应用程序将被隐藏(软退出)。如果我添加这个:
然后按返回按需要将我带回我的应用程序,但使邮件应用程序保持打开(后面),因为根据标志,这是一项新任务。
有没有办法将邮件活动保留在启动应用程序中并允许按下后退按钮以返回到调用活动?如果是这样,怎么做?
java - 如何访问任务的 void onComplete() 的结果
我正在使用一个设计奇怪的库,这段代码基本上有一个Task
带有onComplete()
和onfail()
方法的对象,这两种方法都是无效的,所以我不能在它们里面使用 return。
我尝试使用在任务内部更新的外部变量onComplete()
并onfail()
使用
打算等待任务完成然后返回值,但我得到了
如果我尝试类似
强制方法等待完成
应用程序完全冻结
我怎样才能正确获得任务完成时的价值?