Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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
Java 如何在MainActivity';之后使用服务调用MainActivity方法;它被毁了_Java_Android_Android Intent_Android Service_Android Lifecycle - Fatal编程技术网

Java 如何在MainActivity';之后使用服务调用MainActivity方法;它被毁了

Java 如何在MainActivity';之后使用服务调用MainActivity方法;它被毁了,java,android,android-intent,android-service,android-lifecycle,Java,Android,Android Intent,Android Service,Android Lifecycle,我正在使用一个服务,它需要反复调用MainActivity方法。MainActivity被销毁后,服务在后台运行。但是当调用上述方法时,它崩溃了 那个么,即使在应用程序被终止后,我如何使用该服务访问类呢 我的服务类方法 public int onStartCommand(Intent intent, int flags, int startId) { // This service runs in background broadcastIntent(); // Start

我正在使用一个服务,它需要反复调用MainActivity方法。MainActivity被销毁后,服务在后台运行。但是当调用上述方法时,它崩溃了

那个么,即使在应用程序被终止后,我如何使用该服务访问类呢

我的服务类方法

public int onStartCommand(Intent intent, int flags, int startId) {

    // This service runs in background 

    broadcastIntent(); // Start my MainActivity. Because the app is killed

}

也许需要一些实时数据?
我已经开始了解它是如何工作的,也许它可以帮助您

我找到了答案,以防有人在寻找它:


无论应用程序是否正在运行,AndroidManifest中声明的类始终可以使用Intent进行访问。

阅读
Intent
框架,以及如何从服务中广播Intent,这些Intent将:1)如果未启动活动,则启动活动,或触发方法
onNewIntent()
如果活动已启动。阅读每种情况下如何访问意图,以及Android的生命周期是如何工作的。如果正确理解以上内容,您可能能够轻松编写代码-如果没有正确理解,这对于一个好的stackoverflow问题来说是一个太广泛的问题。我搜索了很多,但是如果应用程序被终止,意图无法读取java.class如果应用程序被终止,您的服务将被终止,所以它什么也做不了。但是,如果服务正在运行,最好使用意图(或类似的东西)与活动通信,而不是直接调用方法(因为Android不是这样工作的)。如果您使用意图来启动活动,您可以在
onCreate()
onNewIntent()
中检查它,然后通过这些方法将控制权传递给希望触发的实际代码。如果您希望服务在活动处于活动状态时进行通信,请在活动中注册广播接收器。但是,如果应用程序关闭,则不会调用
onCreate
。我想要的是在应用程序关闭时打开它。(通过使用后台服务)如果您使用
startActivity(Intent)
发送广播,则活动将启动。这正是该方法的作用。我的建议是仔细阅读Android中如何使用意图,如何使用意图来启动不同的活动,以及这些活动如何读取意图中发送的数据。如果你发现了什么,告诉我你想启动什么样的方法?你能给我一些代码,让我看看它是否和我做的相似,并帮助你吗?我想访问任何Java类并运行它的方法。例如MainActivity.java。情况是,应用程序已经被杀死。代码添加为什么不将方法放在类中而不是活动中?那么你可以从主要活动中调用它,还是从另一个活动中调用它?例如,您创建了一个类“commonmethods”,并将所有方法都放在其中。因为它不是一项活动,所以它总是可以访问的。例如,我有一个“callAPI”类/服务,其中包含向API发送请求所需的所有方法,我可以调用我所处的任何片段/活动。如果应用程序未运行,则无法访问这些类。