【问题标题】:Messages to flag Async Task has started and Completed用于标记异步任务的消息已开始并已完成
【发布时间】:2014-05-19 13:26:42
【问题描述】:

我的应用程序中有一个异步任务,它会在完成时触发一些事情,但这会导致一些问题是手机进入睡眠状态。当我回到应用程序时,我需要一种方法来知道异步任务是否有效。我已经环顾四周,但我认为我的问题是我什至不知道从哪里开始。任何信息都有帮助。

【问题讨论】:

  • 此 AsyncTask 运行多长时间?也许你会更好地使用服务?
  • 它确实运行了相当长的一段时间。我认为我的问题是,就我而言,我在异步完成后关闭了一个对话框片段。因此,当我回来时(无论是在睡觉还是按下主页按钮并且用户返回应用程序)它都混淆了,因为我试图关闭片段对话框。
  • 那你最好考虑使用服务。您可以向前台 Activity 发送广播以关闭该对话框,并在 Activity 的onResume 中检查服务是否已完成。
  • 为什么不使用服务并在完成后广播消息以便您知道活动已完成?在您的活动中实施本地广播管理器以接收结果。
  • 很好的建议,然后我会研究服务。谢谢。

标签: android asynchronous android-asynctask android-lifecycle


【解决方案1】:

尝试在您的 onpause 方法中关闭对话框片段。并检查您的布局是否对您的 AsyncTask 的 onPostExecute() 方法中的用户可见,如下所示:

RelativeLayout root = (RelativeLayout)findViewById(R.id.root);
root.isShown()//check if the layout is visible to user

【讨论】:

    猜你喜欢
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多