当前位置: 首页 > 面试题库 >

将JobIntentService绑定到活动

孟德曜
2023-03-14
问题内容

我想在Android中运行长时间运行的操作。假设任务将运行约5-10分钟。因此,我打算使用JobIntentService并将其绑定到Activity

现在我正在使用AsyncTask,即使我知道AsyncTask不能/不应该将其用于长时间运行的操作,因此我打算立即进行更改。很多时候,发生的情况是在任务运行时,用户将应用程序最小化,并且一段时间后,Android操作系统关闭/清除了,Activity以释放一些内存。

因此,我AsyncTask一直没有任何目的地运行,并且尝试更新其中的视图时崩溃了Activity

所以我打算使用JobIntentService。但是,使用JobIntentService和将其绑定到Activity会减少Android
OS关闭/清除的机会Activity吗?还是会遵循相同的过程?

任何帮助将不胜感激。


问题答案:

如果您Activity在后台,那么阻止Android杀死您Activity对我来说不是一个好主意(甚至是必要的)。由于您Activity是在后台,因此用户看不到它,因此在此期间无需更新UI。

相反,您可以执行以下操作:

如果Activity是在前台那么它可以接收来自您的更新JobIntentService通过BroadcastReceiver您注册/注销同LocalBroadcastManageronResume/onPause

如果JobIntentServiceActivity被杀害或在后台完成了IF
的工作,则可以将结果保留在某个地方(例如in中SharedPreferences),然后在in
onResumeActivity可以从中读取结果SharedPreferences



 类似资料:
  • 有没有一种方法可以直接将memcached绑定到它下面的本地存储?将用一个例子来解释。假设hbase被用作分布式的后端。memcached的一层被用作缓存层,它可以被认为是hbase的一个完全副本(在某种意义上)。假设系统中有4个节点,其中3个用于hbase并在其顶部有一个memcached层,1个节点用于计算。通常的规范是查找memcached是否有某个键。如果有,取出来并用于计算。如果没有,则

  • 如何将MVVM值绑定到dropdownlist?下面的输入元素运行良好

  • 我正在尝试这里提供的解决方案https://social.msdn.microsoft.com/forums/en-us/16a91381-0714-4ba1-aff0-7f3b6483b282/populate-a-treeview-from-xsd-file-in-wpf?forum=wpf只采用xs:element和xs:sequence节点,排除所有其他节点(xs:complextype>

  • 我在一个razorpage上有一个单选按钮,像这样 表单的模型如下所示 和SQL的模型如下所示 而SQL中的CostCenter的数据类型是varchar(80) 当我保存表单时,CostCenter没有绑定到SQL中的任何值,它将保持为NULL,但表单的其余值将正确保存 那是什么原因造成的呢? 如果选择了“proj”,我想保存值“proj”,如果选择了“dep”,我想保存值“dep” 谢谢 托玛

  • 问题内容: 我有一个JList和ArrayList。如何将arraylist中的数据绑定到jlist.Ares有替代方法吗? 如何绑定以上代码。现在代码给出错误。 问题答案: 您无需克隆ArrayList。只需调用toArray()

  • 由于Android Oreo后台执行限制,文档建议将重构为。 立即作为Oreo下面的运行,但在Oreo+上调度作业 https://developer.android.com/reference/android/support/v4/app/jobintentservice 在什么情况下,将正常的作为前台运行并带有持久通知是有意义的,何时更好? 我可以在中看到一个缺点是它不能立即启动。