问题标签 [android-lifecycle]
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 - How to handle AsyncTask onPostExecute when paused to avoid IllegalStateException
I appreciate the numerous postings regarding AsyncTask on a rotation change. I have the following problem when using the compatability lib and trying to dismiss a DialogFragment
in onPostExecute
.
I have a fragment which fires of an AsyncTask which displays a progress DialogFragment
, then in onPostExecute
dismisses the dialog and then potentially throws up another DialogFragment
.
If when the progress dialog is being displayed I put the application into the background I get the following for my fragment:
1) onPause
2) onSaveInstanceState
3) onPostExecute
in which I try to dismiss and invoke a dialog.
I get an IllegalStateException
because I'm trying to effectively commit a transaction when the activity has saved its state and I understand this.
On a rotation I've assumed (perhaps incorrectly) that I wouldn't get an onPostExecute
until the activity has been recreated. However, when putting the application into the background I assumed (definitely incorrectly) that the onPostExectute
wouldn't get called while the fragment/activity was paused.
My question is, is my solution to simply detect in onPostExecute
that the fragment/activity is paused and simply perform what I need to do in onResume
instead? Seems somewhat ugly to me.
Thanks in advance, peter.
Edit 1
Need to support 2.1 and above
Edit 2
I have considered showing the dialog using FragmentTransaction:add
and FragmentTransaction:commitAllowingStateLoss
however this isn't without its problems.
android - Android 片段 onCreateView 与 onActivityCreated
我知道片段的视图层次结构必须在 onCreateView 中膨胀,但是 onCreateView 中可以有哪些其他功能与应该等待 onActivityCreated 什么?我当前的实现对所有内容都使用单独的活动,典型的活动在其 onCreate 方法中完成大部分工作,包括膨胀视图、设置内容视图、使用数据初始化各种小部件、设置侦听器等。
那么这可能全部移到 onCreateView 中,还是应该将某些函数放入 onActivityCreated 方法中呢?
android - Android 应用程序组件销毁和重建的细节
有人可以将我推向有关以下内容的一些具体,值得信赖(最好是简洁)的信息:
组件被系统销毁和(如果适用)重新创建的顺序(片段、活动、活动的线程/异步任务/定时器、静态数据(何时卸载类?)、其他类中的线程/异步任务/定时器、宿主 TabActivity、 ActivityGroup,绑定本地服务,应用程序,进程)当应用程序在后台和前台时。
在什么时候可以停止销毁(返回应用程序时会遇到哪些状态 - 例如“包括应用程序对象在内的所有内容都已销毁,进程处于活动状态”?是否有可能(在不修改 Android 的情况下)以编程方式自己造成相同类型的破坏,以便与系统何时执行此操作时无法区分,或者当我们自己选择释放内存(由 onLowMemory 触发)时是否需要单独的机制?
1) 中所有场景的可靠再现步骤(junit.framework 会这样做吗?我还没有调查过)?
“如果用户长时间离开一个任务,系统会清除该任务除根Activity之外的所有Activity。当用户再次返回该任务时,只恢复根Activity ”:这是除了流程/组件之外生命周期/销毁,还是与之相关?
我已经阅读了各种来源提供的信息,这些信息通常不完整且具有误导性,有时甚至是不正确的。
我承认,我浏览了文档的某些部分,所以我可能遗漏或误解了某些内容。
[编辑] 为了避免误解:我要问的是 Android 破坏组件以释放内存,绕过Activity.onDestroy。
当我将应用程序置于后台并稍后返回时,将发生以下序列之一:
- onPause、onStop、onRestart、onStart、onResume
- onPause、onStop、Application.onCreate、onCreate(notNull)、onStart、onResume
[EDIT2] 赏金开始了。需要有关以下方面的可靠信息:活动、片段、应用程序、绑定(可能是远程)服务、流程。
部分/全部破坏场景。见第 1 点。
android - 执行重新创建方法后未恢复的活动暂停
我有一个 HoneyComb 项目,在我的主 Activity 的 onResum() 方法中使用 recreate() 方法后出现错误。
我创建了一个新项目来向您展示发生了什么。
您可以在http://xp-dev.com/svn/RecreateError/trunk/找到它
我不知道我的错是什么,但我启动了 Activity 并记录了 Activity 的生命周期。结果:
现在我按下操作栏图标来激活重新创建标志并更改为其他应用程序...
并返回我的活动,激活重新创建标志,在 onResume() 处将完成重新创建()。
暂停?但是我的活动是可见的,我做错了什么?正确的状态不是 onResume()?
现在,如果我更改为另一个应用程序,我会收到错误消息。
感谢您的宝贵时间,并为我糟糕的英语感到抱歉。
目前我不明白 File Manager HD 之类的应用程序是如何执行此操作的。
两个Activity:以PreferenceFragment为主要内容的Main Activity A、Activity B。
一个在 Holo 和 Holo.Light 之间改变主题的选项,Activity B 用OnSharedPreferenceChangeListener
PreferenceFragment 中的方法改变,但是当我们回到 Main Activityrecreate()
方法onResume()
失败时,怎么做?
我很困惑。对不起。
android - 活动开启后恢复正常工作流程
举个简单的例子,我有一个应用程序,它显示一个 HomeActivity,这个活动可以导致一个 RssListActivity(列出 RSS 项目),它可以导致第三个 ItemDetailActivity,它只是提供我的 RSS 项目的详细视图。某些通知可能会导致在定义的文章上打开 ItemDetailActivity。
我的观点是,在通知的情况下,要恢复正常的工作流程,即当用户单击后退按钮时,他会被带到 RssListActivity,而再次单击后退按钮会被带到 HomeActivity。
当然,我真的不想在这些活动中的每一个上覆盖自定义 onKeyDown() 。
android - 恢复活动时防止对话框多次打开
在我的 Android 应用程序中,为了询问用户他/她是否想恢复当前游戏,我会在主游戏活动上显示一个对话框,说“你想恢复当前游戏吗?是 - 否”。
问题是,如果我在不回答对话的情况下多次恢复此活动,那么我会得到几个对话,彼此叠加,这显然不是我的目标。
我可以使用布尔变量轻松避免这种行为,但我想知道 Dialog 类是否有一种防止被复制的选项或类似的东西。
android - Android:使用支持片段管理器时复制片段
我对片段有一个非常奇怪的问题。我使用最新的支持库。我也使用 Google 在他们的IOSCHED 项目中使用的类似代码
但是我在旋转后重新创建活动时遇到问题。在销毁并再次创建活动后,我调用管理片段事务的方法(在 onStart 方法中)。此行仅调用一次,但会创建片段 TWICE !
这是我的活动方法:
和我的日志:
所以每次旋转后碎片的数量都会增加。
旋转后,它会在进入我的 onStart 方法之前恢复片段,并且我的 onStart 方法会在同一个 Frame 布局容器中创建第二个相同的片段。但是它在哪里恢复了第一个片段?我想禁止它。或者我应该改变我的“如果”来测试它是否已经创建?但我不知道如何确定它。看起来空测试没用。
add()
我还通过将方法替换为replace()
. 之后,片段的数量不会增加,并且每个片段在onStart
创建新片段之前被销毁。但这在一些片段中造成了严重的问题,我在他们的 onCreate 方法中启动了一些后台进程......
请帮帮我...我真的不知道该怎么办。非常感谢您的任何建议或想法!
android - 当应用程序进入后台时,它的静态实例可能会被清除吗?
有人说,当任务进入后台时,android会清除单例实例。这是真的吗?
我意识到,当我尝试杀死前台任务(通过使用 DDMS)时,应用程序会自动重新启动它。一定有一些守护进程,不是吗?
当然,重新启动前台应用程序对我来说是安全的,因为当进程重新启动时,我可以通过调用应用程序的 onCreate 来重新初始化我的应用程序。
但是我对后台任务/应用程序感到困惑。android会杀死后台任务并以与前台应用程序相同的方式重新启动它吗?(我尝试杀死后台应用程序,它在没有重启的情况下退出)。或者dalvik会清除并回收静态实例?
如果dalvik真的很清楚singlton,我该如何避免呢?
android - 刷ViewPager时Fragment不调用onSaveInstanceState?
我的 ViewPager 出现问题,我的 ListView 正在失去它的滚动位置。
ListView 的状态可以使用以下方法轻松存储和恢复:
然而问题是当片段被刷卡onDestroyView()
时被调用但从不调用onSaveInstanceState (Bundle outState)
。
旋转屏幕等可以ListView
很好地恢复状态,但是滑动我无法弄清楚如何正确恢复列表。
android - 在 Android 中使用 Fragments 而不是 Views 有什么好处?
在Android
为Fragments
. 昨天我这样做并成功实现Fragments
了自定义类的数据可视化。
我的问题是:Fragments
与简单地从自定义对象获取视图相比,使用它有什么好处,并且仍然支持 API 1.5?
例如,假设我有类 Foo.java:
这两种方法在一个 Activity 中创建和使用都非常简单,比如说,有一个List<Foo>
要显示的(例如,以编程方式将每个添加到 a ScrollView
),所以它们Fragments
真的很有用,或者它们只是过度美化的简化得到一个视图,比如通过上面的代码?