问题标签 [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-lifecycle - 为什么 Activity API 生命周期方法使用 RuntimeException 来强制子类调用超级方法?
Android 要求所有 Activity 子类从其生命周期方法中调用超级方法。如果未调用 super 方法,则会引发异常。为什么Android会使用RuntimeException机制来强制调用super方法。为什么它不使用“模板”设计模式,以便超级方法在子方法之前自动执行。例如 onDestroy() 可以按如下方式处理:-
android - 多少 Android 生命周期处理太多了?
可以理解这个问题有点主观,但我相信有一个具体的答案。
我有一个非常小的活动,它只是在 ListActivity 中向用户显示一些数据。我使用的数据来自应用程序的 SQLite 数据库,我发现自己正在这样做
这只是代码在很大程度上是不必要的吗?我想处理生命周期,以便在 MainActivity 不在顶部时使用最少的资源,但同时,整个活动可以在onCreate()
.
android - Android - 从横向到纵向的双重生命周期序列
我正在监视Activity
生命周期以了解更多信息,因此我Log.d()
在几乎每个周期的方法中都进行了调用。
我特别看这个序列:
查看活动生命周期
使用 Ctrl-F11 将 2.2 Froyo 模拟器从纵向切换到横向我可以看到从 [A] 到 [B] 的一轮。
令我感到奇怪的是,从横向切换回纵向我可以看到从 [A] 到 [B] 的两轮。
这给我带来了很多保存/恢复活动状态的问题。
怎么会这样?为什么会这样?
编辑:使用 2.3.3 Gingerbread 模拟器,序列只运行一次。但是 2.3.3 模拟器有一个已知的错误,它会阻止它正确旋转!
android - onDestroy() - 设置或不设置实例变量为空?
在活动的 onDestroy() 回调中专门将实例变量设置为 null 是个好主意吗?像这样的东西:
如果我从 Java SE 中没记错的话,任何被隔离且未连接到正在运行的程序的引用都可以被垃圾收集。那么这是否使上述内容变得多余?
另一方面,移动设备的生命周期不同,以上是最佳实践吗?
我知道这样做不会有什么坏处,但有时有许多类变量(对单个 UI 元素的引用等),所以我真的很想知道我自己的理解,到底发生了什么。
提前致谢!
android - 在Android中单击后退按钮时的onSaveInstanceState
我有一个在 Android 应用程序中运行时调用的活动。当用户单击后退按钮时,Activity 被销毁,我重写了onSaveInstanceState
保存方法以outState
在第二次检索,但onSaveInstanceState
在用户单击后退按钮时从未调用过。
你知道为什么会这样吗?
android - 此活动 - 服务消息传递模式是否会导致内存泄漏?
我有一个 WorkerService
和一堆活动。每个Activity
人都有一个Handler
。Activites 可以通过发送Intents
到Service
withstartService
方法来启动作业。这些作业进入队列,并按顺序处理。
为了报告已完成作业的结果,我提供了Handler
包含在 Messenger 对象中的正确 Activity,并带有Intent
描述作业的 。通过这个Service
发回一些用于调用的消息Activity
。这工作得很好。
但是提供的Handlers
似乎保留在内存中,即使在相应的Activites
被销毁之后,继续处理完成消息。
- 怎么会这样?处理程序不应该与
Activity
它们所属的部分一起被销毁吗? - 这会导致内存泄漏吗?
android - 使用 IntentService 进行位置监听,但在 onHandleIntent 之后立即调用 onDestroy
我正在使用 IntentService 来监听 GPS 位置更新,以便在用户离开活动时运行。IS 在消息中将位置发送给活动的处理程序。
问题是,当用户点击“停止跟踪”按钮时,状态栏通知说“正在跟踪...”仍然存在,因为它是在 IntentService 中创建的。因此我重写了 onDestory() 所以我可以调用:
但问题是,当我实现onDestroy() 时,它是在onHandleIntent 之后立即调用的。如果我删除我的覆盖 onDestroy() 代码,那么它不会立即被调用并且运行良好,将位置发送回活动以显示在屏幕上。
任何想法为什么 onDestroy() 如果我实现它会立即被调用,但如果我不实现它就不会?
我在这里很困惑。
谢谢大家,
无限化
android - 强制 Android 在方向更改时不重绘活动
我一直在努力解决这个问题。
尽管我在 Orientation Change 上阅读了很多内容,但 Android 会杀死一个活动并将其作为一个新的活动启动,而处理此问题的唯一方法是将所有内容保存在里面onSaveInstanceState()
并尝试在里面恢复它onCreate()
。
但是我的活动在不同的时间做了很多不同类型的网络活动,如果在执行网络活动时方向发生了变化,我将不得不处理很多不同和复杂的场景。
有没有什么简单的方法可以让Android在改变方向时根本不需要重绘这个活动,以便它自动保存所有数据并重新使用它?
我想知道有没有这样的事情。
android - Android生命周期-ActivityManager杀死进程->从后台返回时出现异常
我有一个非常无聊的问题。当我的应用程序进入后台时,有时该进程会被终止,如 LogCat 所示:
然后,当我尝试通过任务切换器(长按主页)返回应用程序时,它会尝试返回上一个打开的活动......然后崩溃。
为什么它不从头开始打开,在整个应用程序关闭时打开 Main?
ERROR/InputDispatcher 错误并不总是出现。
更新:
问题是......应用程序已恢复,但其中下载的对象(作为哈希图)不是......所以当我访问它们时......我有“问题”......
更新 2:
如果应用程序包含我需要的数据或者它是否为空(在这种情况下它重新启动应用程序),我已经通过验证 BaseActivity 上的 onCreate (由其他所有扩展)来解决问题。
有没有更优雅的解决方案,或者至少有一种方法可以告诉设备如果应用程序被终止,我希望重新启动应用程序?
此链接有助于理解问题......并且知道如何存储来自应用程序的数据没有明确的答案:如何在 Android 中声明全局变量?
更新 3:
所以我专门问了一个关于如何正确保存应用程序数据的问题。这可能会帮助那些有同样问题的人:Android: Best way to save data stored in Application Singleton Class
android - Android 片段与复合控件
为什么要使用 Android 3.0 片段而不是复合控件?可以一次创建一个 View 继承者或复合控件,然后在任何地方使用它。
我已阅读http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html但没有找到答案。