Articles of android lifecycle

在恢复活动时阻止多次打开对话框

在我的Android应用程序中,为了询问用户他/她是否想要恢复当前游戏,我在主游戏活动中显示一个对话框,说“你想恢复当前游戏吗?是 – 否”。 问题是如果我在没有回答对话的情况下恢复这个活动的次数,那么我会得到几个对话框,这显然不是我的目标。 我可以使用布尔var轻松避免这种行为,但我想知道Dialog类是否有一种防止重复或类似的选项。

onCreate(Bundle savedInstanceState)始终为null

我知道,这个问题之前在stackoverflow上被问到,但是没有答案对我有用。 可能值得一提的是: 我将ActionBarSherlock与支持包一起使用。 我按下主页按钮时调用onSaveInstanceState方法。 onCreate方法总是为Bundle savedInstanceState赋予NULL。 永远不会调用onRestoreInstanceState方法。 (我不介意onCreate有效;))。 另外(应该没关系)我尝试将super.onSaveInstanceState(outState)放在onSaveInstanceState的底部。 也没有运气。 这是代码。 我希望有人有这个问题并解决了它。 public class MainActivity extends SherlockFragmentActivity { private static final String LOG_TAG = MainActivity.class.getSimpleName(); private static String STATE_TO_STORE = “state_to_store”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(LOG_TAG, “onCreate: savedInstanceState = ” + (savedInstanceState == null ? “NULL” : “Not NULL”)); // … more […]

Android – 如果第一次加载Activity,则阻止onResume()函数(不使用SharedPreferences)

在我当前的应用程序中,第一次加载Activity时会触发onResume函数。 我查看了Activity Lifecycle ,但我没有find防止这种情况发生的方法。 我是否可以在第一次加载Activity时阻止onResume()函数加载,而不使用SharedPreferences?

如何暂停和恢复服务

我是一个Android初学者,不幸的是我到目前为止找不到令人满意的答案。 我希望你能帮助我。 我认为我的问题涉及一项共同的任务。 我的情况如下:我已经实现了自己的服务,只记录GPS位置并将它们存储在列表中。 服务停止后,它会将数据写入数据库。 这很好用,但现在服务应该有某种“ 暂停模式 ”,它停止录制,以后可以恢复。 实现此function的最佳方法是什么? 到目前为止,我想出了两个(当然不是很令人满意)的想法: 实现我自己的服务生命周期(启动,停止,暂停,恢复)并将GUI绑定到服务。 此外,似乎异步发生绑定,这使得更新GUI(启用和禁用启动/停止控件)有点混乱。 暂停时,服务停止,GPS位置被附加到单个类中的某个列表中。 在恢复时,服务再次启动,依此类推。 我在这里看到的问题是,在暂停模式下应用程序可能会被杀死并且数据丢失。

启动器活动的onResume()方法被调用两次但onCreate()只被调用一次

当我的应用程序启动时,启动器活动的onCreate()方法通常只被调用一次。 但紧接着就是两次调用onResume()。 当我检查代码时,两个实例都属于同一个类,但显然只有一个具有来自onCreate()的实例成员。 但是一切都很好。 我只是好奇地试图理解为什么会这样。 有人有什么想法吗? 我正在使用SherlockFragmentActivity,这与它有什么关系吗? 我很乐意根据需要提供更多信息。 我现在还不知道还有什么相关的。 谢谢!

有些人可以绘制Fragment及其父级FragmentActivity的生命周期吗?

在Android文档中,我单独find了有关Activity生命周期和Fragment生命周期的规范,但从未在一起。 当我将调试器附加到托管我的片段的FragmentActivity ,它似乎并不明显,而且生命周期不仅仅是疯狂的。 看起来活动首先完成然后片段开始,这是不可能的。 Fragment的生命周期 活动的生命周期 从逻辑上讲,片段应该在其onResume之后“跳入”活动的生命周期,并且它将在活动的onPause之前结束,但似乎它没有发生。 有人可以向我展示与其父级活动相关的片段的生命周期,还是指导我一些关于此的好教程?

有关Android文档的说明

注意:即使系统在停止时破坏了您的活动,它仍然会保留状态 Bundle中的View对象(例如EditText中的文本)(一对键值对),如果用户导航回活动的同一个实例,则恢复它们(下一课讲述有关使用Bundle的更多信息)保存其他状态数据,以防您的活动被销毁和重新创建)。 同一个活动的实例 它是如何被破坏和重新创建的确切实例,它不是一个新的内存块(另一个实例),任何人都可以帮我清除这一点吗?

应用程序恢复导致FormsAppCompatActivity崩溃

我有一个Xamarin Forms应用程序,目前正在为Android构建。 我有一个MainActivity用于扩展FormsApplicationActivity ,但因为我想使用自定义主题我必须更改它以扩展FormsAppCompatActivity (请参阅我的另一个问题: Xamarin Forms自定义主题不起作用 )。 自从从FormsApplicationActivity更改为FormsApplicationActivity ,每当我退出应用程序然后返回应用程序时,应用程序就会崩溃。 它在OnResume方法的App.xaml.cs类中抛出一个错误,我尝试将MainPage设置为一个新的导航页面: protected override void OnResume() { bool isRegistered = _authenticationService.IsRegistered(); MainPage = isRegistered ? new NavigationPage(new LoginPage()) : new NavigationPage(new RegisterPage()); // this results in the crash } 我得到的错误是: Java.Lang.IllegalStateException:无法在onSaveInstanceState之后执行此操作 这是堆栈跟踪: 03-09 13:43:52.098 I/MonoDroid( 1243): Java.Lang.IllegalStateException: Can not perform this action after onSaveInstanceState 03-09 13:43:52.098 […]

Android生命周期 – 从后台返回时,ActivityManager会终止进程 – >exception

我有一个非常无聊的问题。 当我的应用程序转到后台时,有时会在LogCat显示时终止该进程: INFO/ActivityManager(187): Low Memory: No more background processes. INFO/ActivityManager(187): Process com.app.myapp (pid 20681) has died. INFO/WindowManager(187): WIN DEATH: Window{40592708 com.app.myapp/app.myapp.dashboard.Dashboard paused=false} ERROR/InputDispatcher(187): channel ‘408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)’ ~ Consumer closed input channel or an error occurred. events=0x8 ERROR/InputDispatcher(187): channel ‘408b1d40 app.myapp/app.myapp.menus.products.Promotions (server)’ ~ Channel is unrecoverably broken and will be disposed! INFO/WindowManager(187): WIN DEATH: Window{408b1d40 […]

使用IntentService进行位置监听,但onHandleIntent后立即调用onDestroy

我正在使用IntentService来监听GPS位置更新,以便在用户离开活动时运行。 IS将消息中的Location发送给活动的处理程序。 问题是,当用户点击“停止跟踪”按钮时,状态栏通知“跟踪…”仍然存在,因为它是在IntentService中创建的。 所以我凌驾于onDestory()所以我可以打电话: mNotificationManager.cancel(TRACKING); 但问题是,当我实现onDestroy()时,它会在onHandleIntent之后立即调用。 如果我删除我的覆盖onDestroy()代码,那么它不会立即被调用并且运行正常,将位置发送回活动以在屏幕上显示。 任何想法为什么onDestroy()会立即被调用,如果我实现它,但不是,如果我不? 我在这里很困惑。 谢谢大家, Infinitifizz