Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android让进程在后台运行_Android_Android Intent - Fatal编程技术网

Android让进程在后台运行

Android让进程在后台运行,android,android-intent,Android,Android Intent,我知道我们可以使用服务和IntentServices,但我有一个要求,即一个类保持运行,并且除了垃圾收集器之外永远不会被删除。 描述更多的原因:我正在使用一个事件系统。 因此,当一个活动或服务触发一个事件时,中心事件类捕获该事件并执行所需的任何操作。 如何创建类来完成此任务?我知道扩展应用程序并添加到清单的类是一种方法。 但我在寻找更好的方法 但我有一个要求,那个就是一个类保持运行,并且除了垃圾收集器之外永远不会被删除 如果您询问类的一般情况,可以使用静态变量。除非将null赋值给它,否则它永远

我知道我们可以使用服务和IntentServices,但我有一个要求,即一个类保持运行,并且除了垃圾收集器之外永远不会被删除。 描述更多的原因:我正在使用一个事件系统。 因此,当一个活动或服务触发一个事件时,中心事件类捕获该事件并执行所需的任何操作。 如何创建类来完成此任务?我知道扩展应用程序并添加到清单的类是一种方法。 但我在寻找更好的方法

但我有一个要求,那个就是一个类保持运行,并且除了垃圾收集器之外永远不会被删除

如果您询问类的一般情况,可以使用静态变量。除非将null赋值给它,否则它永远不会被垃圾收集,因为类对象将持有对它的强引用

因此,当一个活动或服务触发一个事件时,中心事件类捕获该事件并执行所需的任何操作

为此使用BroadcastReceiver组件。它正是为了这个目的而设计的


我不明白你的第一个问题和第二个问题有什么关系。。我想你希望你的接收者总是处理事件。因此,在这种情况下,只需在AndroidManifest.xml中注册它,这样它就会在每次事件发生时运行。

实现一个BroadCastReceiver来执行此任务。非常感谢对合法问题的否决票。我已经在使用EventBus了,不需要BroadCastReceiver。我的问题是,如果我创建一个名为EventHandler的类,并将一个静态变量添加到一个扩展应用程序的类中,该类将永远不会被垃圾收集?正确。只有当应用程序进程完全终止时,才会对其进行垃圾收集。tnx,这正是我要寻找的答案。@Mehrdad请参阅android.app.Application文档:通常不需要对应用程序进行子类化。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。@pskink您能更详细地解释一下如何在不使用android.app.Application的情况下实现吗?