awesome-adb icon indicating copy to clipboard operation
awesome-adb copied to clipboard

关于启动service的问题

Open TMLAndroid opened this issue 6 years ago • 5 comments

在终端里 adb shell am startservice 启动服务,在我的service开启了线程,发现没有等待我service执行完毕,终端就停止了(可以执行下一条指令),有什么方法保持同步或者监听service stop了

TMLAndroid avatar May 23 '18 01:05 TMLAndroid

目前没发现什么方式能直接实现……间接实现的话,在 service stop 的时候输出个 log,然后监控下 log? 😆

mzlogin avatar May 25 '18 00:05 mzlogin

恩,这个方法试了,可行是可行,就是面对批处理文件的话,就不太好处理了

TMLAndroid avatar May 25 '18 05:05 TMLAndroid

可以试试双进程 / 双线程的思路:

  1. 进程 B 监控 logcat 里的特定输出,监控到后发送一个通知信号;
  2. 进程 A 调用 startservice,然后等待通知信号,等到通知信号后才继续后面的流程。

mzlogin avatar May 25 '18 05:05 mzlogin

恩,目前没有好的办法只能这么处理了,顺便咨询一下,android开发者可以向Terminal打印日志么

TMLAndroid avatar May 25 '18 08:05 TMLAndroid

你是指 Android 应用程序吗?我不知道有这样的方法。

System.out.println 这样的也被输出到 logcat 了。我推测应该不能行,terminal 可以起很多进程实例,程序怎么知道要输出到哪一个呢?

mzlogin avatar May 25 '18 08:05 mzlogin