【发布时间】:2017-11-24 09:18:32
【问题描述】:
我有一个使用本机 pthread 运行长时间运行的任务的应用程序,我有一个后台服务,没有通知通过 JNI 保持对线程的引用。
当服务被销毁时,我失去了对 pthread 的引用。
我想将它存储在一个静态/单例中,这样它就可以在服务停止后继续存在。我的问题是:JVM什么时候死? android重启服务时会重新创建JVM吗?
谢谢
【问题讨论】:
标签: android java-native-interface
我有一个使用本机 pthread 运行长时间运行的任务的应用程序,我有一个后台服务,没有通知通过 JNI 保持对线程的引用。
当服务被销毁时,我失去了对 pthread 的引用。
我想将它存储在一个静态/单例中,这样它就可以在服务停止后继续存在。我的问题是:JVM什么时候死? android重启服务时会重新创建JVM吗?
谢谢
【问题讨论】:
标签: android java-native-interface
Android 可以随时杀死您的进程,如果它没有运行前台应用程序(请注意,这种情况可以随时从您的应用程序中窃取),并且所有线程都将消失。当框架重新启动您的服务时,它将是一个新进程,并带有其他线程。
【讨论】:
是的,
当所有线程(守护进程除外)都已死亡时,JVM 将退出。
当您启动应用程序时,JVM 将启动一个非守护线程来运行您的静态 main 方法。
【讨论】: