相关疑难解决方法(0)

如何在活动/片段暂停时处理Handler消息

我的其他帖子略有不同

基本上我Handler在我的消息中Fragment收到一堆消息,这些消息可能导致对话框被解除或显示.

当应用程序进入后台时,我得到了一个,onPause但仍然可以像我们期望的那样得到我的消息.但是,因为我正在使用片段,所以我不能只关闭并显示对话框,因为这将导致一个IllegalStateException.

我不能只是解雇或取消允许国家损失.

鉴于我有一个Handler我想知道是否有一个推荐的方法,我应该如何在暂停状态下处理消息.

我正在考虑的一个可能的解决方案是记录暂停时播放的消息并将其播放回来onResume.这有点令人不满意,我认为框架中必须有一些东西可以更优雅地处理这个问题.

android android-fragments

98
推荐指数
2
解决办法
7万
查看次数

如何在暂停时处理AsyncTask onPostExecute以避免IllegalStateException

我很欣赏有关轮换更改的AsyncTask的大量帖子.使用兼容性lib并试图解雇DialogFragmentin 时,我有以下问题onPostExecute.

我有一个片段,它触发AsyncTask显示进度DialogFragment,然后onPostExecute解散对话框然后可能抛出另一个DialogFragment.

如果在显示进度对话框时我把应用程序放到后台我得到了以下片段:

1) onPause

2) onSaveInstanceState

3)onPostExecute我尝试解雇并调用对话框.

我得到一个IllegalStateException因为我正在尝试在活动保存状态时有效地提交事务并且我理解这一点.

在轮换中,我假设(可能不正确)onPostExecute在重新创建活动之前我不会得到.但是,当把应用程序放到后台时,我假设(肯定是错误的)onPostExectute在片段/活动暂停时不会被调用.

我的问题是,我的解决方案是简单地检测onPostExecute到片段/活动暂停并简单地执行我需要做的事情onResume吗?对我来说似乎有些难看.

提前谢谢,彼得.

编辑1

需要支持2.1及以上版本

编辑2

我已经考虑过使用对话框FragmentTransaction:add,FragmentTransaction:commitAllowingStateLoss但这并非没有问题.

android android-lifecycle android-asynctask android-fragments

37
推荐指数
2
解决办法
3万
查看次数