Android 在这种情况下,我为什么要使用服务?
我将遵循以下基本教程: 正如你所看到的,它基本上有以下功能(如果我错了,请纠正我):Android 在这种情况下,我为什么要使用服务?,android,android-intent,android-service,Android,Android Intent,Android Service,我将遵循以下基本教程: 正如你所看到的,它基本上有以下功能(如果我错了,请纠正我): 一旦启动MainActivity,将为特定日期和时间设置警报 一旦到达此日期和时间,它就开始打算MyReceiver.class 第一站。:MyReceiver正在扩展BroadcastReceiver。是否有可能启动正常活动的意图 BroadcastReceiver只是触发一个新的意图来打开一个服务,它只是显示一个通知 第二站。:与之前相同:BroadcastReceiver,只能启动属于服务的意图
- 一旦启动MainActivity,将为特定日期和时间设置警报李>
- 一旦到达此日期和时间,它就开始打算
MyReceiver.class
MyReceiver
正在扩展BroadcastReceiver
。是否有可能启动正常活动的意图
- BroadcastReceiver只是触发一个新的意图来打开一个服务,它只是显示一个通知
非常感谢。
BroadcastReceiver
只是一种在收到广播后做任何事情的方法
服务
不像活动
那样容易被Android操作系统杀死<代码>服务没有GUI。BroadcastReceiver
只是一种在接收广播时执行任何操作的方法
服务
不像活动
那样容易被Android操作系统杀死<代码>服务没有GUI。广播接收器可以有目的地启动您想要的任何东西(活动、服务)
你不想塞进广播接收器的原因是,它们只在服务运行的地方存在很长时间,直到你告诉它停止为止
如果您正在进行轮询或其他操作,您真的不需要广播接收器,您可以使用报警管理器提供的服务(
IntentService
)。IntentService只有在有事情要做的时候才会运行很长时间,这意味着它会停止自己,这与正常服务不同,正常服务在完成时必须停止它。BroadcastReceivers可以有目的地启动任何你想要的东西(活动、服务)
你不想塞进广播接收器的原因是,它们只在服务运行的地方存在很长时间,直到你告诉它停止为止
如果您正在进行轮询或其他操作,您真的不需要广播接收器,您可以使用报警管理器提供的服务(IntentService
)。IntentService只有在有事情要做时才会运行很长时间,这意味着它会自动停止,这与正常服务不同,正常服务在完成时必须停止
为什么我不能在BroadcastReceiver中完成这项工作(比如下载)
网上的一些内容
根据Android文档,广播接收器onReceive方法在主线程上被调用,因此您无法在onReceive中执行下载任务。因为它将冻结UI,并可能在3.0及以上版本中引发异常
如果您想要执行下载,那么最好的办法是在onReceive内部触发IntentService(默认情况下,IntentService在后台线程上运行)
为什么我不能在BroadcastReceiver中完成这项工作(比如下载)
网上的一些内容
根据Android文档,广播接收器onReceive方法在主线程上被调用,因此您无法在onReceive中执行下载任务。因为它将冻结UI,并可能在3.0及以上版本中引发异常
如果您想执行下载,那么最好的办法是在onReceive内部触发IntentService(默认情况下,IntentService在后台线程上运行)。IntentService与普通Intent相同,它的类扩展了服务,并由
上下文启动。startService(Intent)
?或者可能是某种特殊的服务,完全不同?唯一的区别是它在后台线程上运行,你必须调用HandleContent。哦,那么我肯定要使用IntentService来执行网络操作。IntentService,与它的类扩展服务并由上下文启动的普通Intent相同。startService(Intent)
?或者可能是某种特殊的服务,这是完全不同的?唯一的区别是它在后台线程上运行,你必须调用HandleContent。哦,那么我肯定要使用IntentService来执行联网操作。