草庐IT

onDestroy

全部标签

android - onSaveInstanceState() 应该在 onDestroy() 而不是 onStop()?

为什么在Activity进入停止状态时系统会调用onSaveInstanceState()?由于Activity的实例在停止时一直驻留在内存中,并且它的当前状态只有在Activity被销毁时才会丢失。因此系统应该在进入onDestroy()之前或内部调用onSaveInstanceState()而不是onStop()。不是吗? 最佳答案 因为onDestroy()不能保证被调用(通常,只有当你finish()你的Activity时)并且因为在onStop(),您的Activity不保证保持不变。一旦它不是前台Activity,它可能

android - 什么情况下 "Can' t 从 onDestroy 访问 ViewModels”以及如何优雅地解决它?

一些错误如java.lang.RuntimeException:Unabletodestroyactivity{xxxxxx}:java.lang.IllegalStateException:Can'taccessViewModelsfromonDestroy 最佳答案 查看Android源代码,它检查在尝试获取ViewModel时支持的FragmentManager是否被破坏。打电话ViewModelProviders.of(this).get(ViewModel::class.java)会到达privatestaticHolde

Android 后退按钮调用 ondestroy?

当按下后退按钮并弹出当前Activity时,是否会调用ondestroy?好像不是在呼唤我 最佳答案 似乎会调用onStop。onPause也会在屏幕锁定或来电等情况下被调用...似乎处理Activity弹出的正确方法是onstop() 关于Android后退按钮调用ondestroy?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8143124/

Android 如何在 onDestroy() 后重新连接到 AsyncTask 并重新启动 onCreate()?

我已经测试了AsyncTasks没有随着它们的启动Activity而被销毁的声明。这是真实的。我让AsyncTask每3秒发布一条Log.i()消息,持续1分钟。我将Log.i()消息放入Activity的onDestroy()方法中。我看到Activity已被销毁,但AsyncTask继续运行,直到它完成所有20个Log.i()消息。我很困惑。如果AsyncTask将publishProgress()放入被破坏的UI中会怎样?我猜会发生某种异常,对吧?如果AsyncTask将数据存储在classApplication的全局变量中怎么办?不知道这里,NullPointer异常?如果应用

onDestroy 之后的 Android Fragment onCreateView 不再调用

根据Androidfragment生命周期,我预计在onDestroy之后将重新创建fragment,或者至少再次调用onCreateView。我有一个ActivityA启动另一个ActivityB以获得结果,ActivityB创建一个fragmentF。publicclassAextendsFragmentActivity{...publicvoidonButonClick(){Intentintent=newIntent(this,B.class);startActivityForResult(intent,REQUEST_B);}}publicclassBextendsFragm

android - 为什么在我开始通知时会调用 onDestroy()?如何预防?

我有两个Activity,ChatActivity和ChatOneActivity我想在ChatActivity中建立一个通知,当我按下通知时,我发现调用了onDestroy()方法。为什么?我可以理解为什么调用onStop方法,因为View不再可见。但是onDestroy()呢?为什么?我没有完成ChatActivity!我该如何预防?我只想调用onStop方法,我不希望Activity被终止。这是我构建通知的方式privatevoidshowNotification(Stringid,Stringmessage){NotificationCompat.Builderbuilder=

android - Activity 在 finish() 之后不调用 onDestroy()

我有三个Activity,我们称它们为一、二和三。从Activity一开始,按下按钮启动Activity二。从Activity二开始,按下按钮启动Activity三。足够简单。现在,Activity三需要一些可从应用程序访问的数据(可能存在也可能不存在)。在THREE的onResume()方法中,对数据进行检查,如果不存在则结束Activity,如下所示:@OverrideprotectedvoidonResume(){super.onResume();/*...getdatafromapp...*/if(data==null){Toast.makeText(this,"Datanot

android - CountDownTimer 是否在 Activity destroy() 上自动取消?

一个问题,可能有点幼稚...如果我在ActivityonCreate()中启动一个2分钟的CountDownTimer,并在用户单击按钮时用finish()关闭它,Android会自动取消它吗?或者我需要在onDestroy()中显式调用cancel()吗? 最佳答案 您必须在Ondestroy中显式调用cancel。但更好的做法是在Onpause中调用cancel。因为如果您暂停了Activity并更新了倒数计时器OnFinish内的任何Ui元素,它可能会引发错误。 关于android

android - Activity 生命周期的可靠性(onPause 到 onDestroy)

经过多年对生命周期的信任,我做了一些挖掘。现在我不觉得好笑。我知道并阅读了很多关于onStop不能保证被调用等的内容。我创建了一个简单的应用程序,其中包含2个Activites和一个自定义应用程序类。我在我能找到的每个回调中都放了一个Log.d()并在带有4.1的GalaxyS2上玩过。ActivityA在启动时启动,并在其onResume中启动ActivityB。ActivityB有一个创建Nullpointer的按钮,但除此之外它什么都不做。现在让我担心/困惑的事情:如果我在buttonclick上创建一个nullpointer,应用程序会崩溃并且在两个Activity中都不会发生

android - 如何正确解绑服务

我有一个通过BIND_AUTO_CREATE绑定(bind)到我的Activity并以START_STICKY启动的服务。我没有明确调用startService()。由于当我的Activity被杀死时并不总是调用onDestroy()方法并且onStop()方法不可行,因为我不希望我的服务在用户只需按下主页按钮时停止,我不知道何时取消绑定(bind)我的服务。这是我的问题:如果我希望我的服务在我的ActivityActivity时运行并在我的Activity被终止时停止,我应该在哪里取消绑定(bind)我的服务?当前调用onDestroy()方法并且我调用unbindService()