试着了解Android中的流程如何运作。 假设我有一个名为FancyService的 PendingService 和一个警报接收器:
<receiver
android:name=".FancyAlarmReceiver"
android:process=":remote" />
<service
android:name=".FancyService"
android:exported="false" />
请注意,接收方是process = remote,但服务不是。
现在,让我们假设AlarmReceiver刚刚开始FancyService ......
public class FancyAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, MyTestService.class);
i.setAction(intent.getAction());
context.startService(i);
}
}
...那么服务运行的过程是什么?默认进程,还是:远程进程?
答案 0 :(得分:0)
在这里回答我自己的问题:服务将在默认线程上运行,而不是在远程线程上运行。
我刚做了一个实验,将Log.i放在了AlarmReceiver的onReceive中,并放在了FancyService的onHandleIntent中,并查看了Android Monitor中处理日志的过程.FancyService确实登录了main,默认进程,即使它是由AlarmReceiver从:远程线程启动的(确实登录了远程线程)。