Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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 正在广播接收器上启动ANR的服务修复程序_Java_Android - Fatal编程技术网

Java 正在广播接收器上启动ANR的服务修复程序

Java 正在广播接收器上启动ANR的服务修复程序,java,android,Java,Android,我分析了Android教程,它说在长时间运行操作>10秒时在接收端启动服务,但服务不是从主线程运行的吗 服务() 它还说不要做长时间的操作;那么哪一个更合适呢 但服务不是从主线程运行吗 在主应用程序线程上调用服务的生命周期方法(例如,onStartCommand())。但是,服务与清单注册的广播接收器不同,它可以安全地分叉后台线程。IntentService会自动执行此操作,这就是为什么它非常适合在许多情况下与清单注册的BroadcastReceiver配对 但服务不是从主线程运行吗 在主应用

我分析了Android教程,它说在长时间运行操作>10秒时在接收端启动服务,但服务不是从主线程运行的吗

服务()

它还说不要做长时间的操作;那么哪一个更合适呢

但服务不是从主线程运行吗

在主应用程序线程上调用
服务的生命周期方法(例如,
onStartCommand()
)。但是,
服务
与清单注册的
广播接收器
不同,它可以安全地分叉后台线程。
IntentService
会自动执行此操作,这就是为什么它非常适合在许多情况下与清单注册的
BroadcastReceiver
配对

但服务不是从主线程运行吗


在主应用程序线程上调用
服务的生命周期方法(例如,
onStartCommand()
)。但是,
服务
与清单注册的
广播接收器
不同,它可以安全地分叉后台线程。
IntentService
会自动执行此操作,这就是为什么在许多情况下,它非常适合与清单注册的
BroadcastReceiver
配对。

服务没有Ui线程。ANR仅适用于UI线程。因此,在室内进行长期作业是安全的service@nandeesh:服务肯定在主应用程序线程上运行
onCreate()
onStartCommand()
onBind()
onDestroy()
在应用程序活动使用的同一“UI线程”上调用。“因此,在服务中执行长时间操作是安全的”——只有在这是一个
IntentService
的情况下,或者如果你有自己的线程的话。@commonware我没有这样想过。你是对的。谢谢服务没有Ui线程。ANR仅适用于UI线程。因此,在室内进行长期作业是安全的service@nandeesh:服务肯定在主应用程序线程上运行
onCreate()
onStartCommand()
onBind()
onDestroy()
在应用程序活动使用的同一“UI线程”上调用。“因此,在服务中执行长时间操作是安全的”——只有在这是一个
IntentService
的情况下,或者如果你有自己的线程的话。@commonware我没有这样想过。你是对的。谢谢使用service还是Intentservice更好?@RandonP:这取决于你在做什么。如果您试图做的或多或少是“事务性的”(例如,将某些内容写入磁盘,从Internet下载某些内容),则
IntentService
将很好地工作。如果,OTOH,您正在尝试做一些将运行较长时间的事情(例如,聊天客户端使用一个管理线程的服务,该线程正在套接字上侦听传入的聊天消息),那么使用您自己的后台线程的常规
服务可能是一个更好的主意。嘿,请帮助我:使用服务还是使用Intentservice更好?@RandonP:这取决于你在做什么。如果您试图做的或多或少是“事务性的”(例如,将某些内容写入磁盘,从Internet下载某些内容),则
IntentService
将很好地工作。如果,OTOH,您正在尝试做一些将运行较长时间的事情(例如,聊天客户端使用一个管理在套接字上侦听传入聊天消息的线程的服务),使用您自己的后台线程的常规
服务可能是一个更好的主意。嘿,请帮助我: