我编写了一个简单的代码来检查服务的使用。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("msg","Service Started");
if(intent == null)
Log.w("msg","Service Intent NULL");
g = (GlobalVar) getApplicationContext();
try {
Thread thread = new Thread(new Job());
thread.start();
} catch (Exception ex) {
Log.e("msg", ex.getMessage());
}
return START_STICKY;
}
我的活动中有两个按钮。 一个按钮使用 startService(意图意图)方法启动服务,另一个按钮使用 stopService(意图意图)方法停止服务。 1.我按下了startButton,并在Logcat中打印了msg Service Started 。这次Intent不会为null。 2.现在,我转到模拟器的设置>应用程序>运行服务并找到我的服务并停止它。 msg 服务已停止打印在Logcat中,我已在服务的 onDestroy()方法中编写。
Android系统会在几秒钟后重新启动服务,这次不打印msg 服务启动。文档声明intent将为null。但是msg Service Intent NULL 也不会被打印。
我在线程中打印了一些我的服务启动的消息。在从仿真器设置停止服务几秒钟后,这些msgs会自动开始在logcat中打印。
为什么没有打印这些LogCat消息的想法?
答案 0 :(得分:0)
我猜你应该对下面的这些问题有一些基本的了解....
Log.e:这是为了发生坏事。在catch语句中使用此标记。您知道并且发生了错误,因此您正在记录错误。
Log.w:当你怀疑有阴影的时候使用它。您可能无法在错误模式下完全完整,但也许您从某些意外行为中恢复过来。基本上,使用它来记录您不希望发生的事情,但不一定是错误。有点像“嘿,这发生了,这很奇怪,我们应该调查一下。”
Log.i:使用此命令将有用信息发布到日志中。例如:您已成功连接到服务器。基本上用它来报告成功。
Log.d:用于调试目的。如果要打印出大量消息,以便记录程序的确切流程,请使用此方法。如果要保留变量值的日志,请使用此。
Log.v:当您想要完全记录日志时,请使用此选项。如果由于某种原因您决定在应用程序的特定部分记录每个小东西,请使用Log.v标记。 并参考此Here
我相信这会帮助你...谢谢...