繁体   English   中英

应用后收到短信收到强制关闭错误已被杀死

[英]Getting a force close error on receipt of a text message AFTER app has been killed

当手机收到短信时,有一个可以执行许多任务的应用程序,它们都能正常工作。 但是,如果退出/终止该应用程序,则在收到短信时会出现强制关闭错误。

几乎就像该应用程序仍以某种方式运行/“ onReceive”之类的某些方法仍缓存在内存中。 我需要确保退出应用程序时,已正确退出并且手机没有给出强制关闭错误。 有人可以建议吗?

这是退出应用程序的代码,看起来工作正常。 (当我在应用程序内部时按回电话并回到android主屏幕时,当我检查高级任务杀手时,它不会列出)

@Override
public void onDestroy() {

    super.onDestroy();

    System.runFinalizersOnExit(true);


    System.exit(0);
}//end onDestroy method

您应该阅读一些有关Android工作原理的信息:

尝试查看系统日志(adb logcat),可能会出现一些有关未注销/泄漏的接收器的消息或其他类似消息。

看来您有一些依赖某些数据的接收者,这些数据在应用程序关闭后被破坏/清空。

为什么要执行System.exit(0)? 此外, runFinalizersOnExit在文档中被标记为已弃用runFinalizersOnExit安全。

似乎您需要根据需要在onStoponDestroy方法中执行unregisterReceiver(BroadcastReceiver)

似乎很明显FYPSpeakerActivity在其中具有空值。 但是根据您的描述,可能永远都不应该调用它。

您如何注册短信? 如果您使用manifest.xml定义文本消息的广播接收者,则“退出”您的应用程序无济于事。 如果要以编程方式注册广播接收器,则需要在某个时候取消注册。 “退出”应用不会自动注销。

此外,与其他文章一样,您应该阅读应用程序生命周期。 不赞成使用System.exit(),不建议使用runFinalizerOnExit,并且不能保证onDestroy可以运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM