是否有办法在活动/服务被杀之前立即通知活动/服务?
我的意思是当用户点击Menu > Settings > Applications > Manage applications > app name > Force Close
中的强制关闭按钮时。
答案 0 :(得分:1)
我认为 ActivityManager只会杀死主机进程,因此您可能无法获得任何事件/消息/警告。要检查您是否可以创建一个具有单个活动的应用程序,该应用程序可以让您知道是否调用 onDestroy ,并且还可以调用 isFinishing 。
如果有帮助,源中Menu > Settings > Applications > Manage applications > app name > Force Close
的路径为:
ManageApplications:
https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/src/com/android/settings/ManageApplications.java
InstalledAppDetails:
https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/src/com/android/settings/InstalledAppDetails.java
ActivityManager.forceStopPackage:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/java/android/app/ActivityManager.java
ActivityManagerNative.forceStopPackage:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/java/android/app/ActivityManagerNative.java
一旦获得本机级别,它就会转移到执行脏工作的服务。再一次,我猜它只是停止了这个过程,但这是一个猜测,而且我不知道在我的头顶,原生界面的另一面是在源头检查(虽然它在某处,如果你戳周围,想知道肯定)。
此外,您可能希望将为什么添加到您想要此信息的问题中,可能会有不同/更好的角度来获得您想要完成的任务,具体取决于此。
答案 1 :(得分:0)
我在这里和一般的Android编程都很新,所以请原谅我,如果这不是严格正确的话。但是,我的理解是,仅当您的应用程序是a)无响应或b)抛出未捕获的异常时,才会显示应用程序无响应(ANR)对话框。
如果a)应用程序将无法在合理的时间内响应任何强制关闭通知,因为它已经挂起足以生成ANR。如果b)您的申请已经死亡。