编辑:这个问题的一个更加磨练的版本,答案很好,位于:Rather odd behaviour of Log
编辑:(奇异)解决方案报告如下。我有一个服务作为应用程序的一部分运行得相当好,虽然有一些不寻常的行为,我试图理解。为此,我将Log.d语句放在类的各种方法中,以便在各个点报告状态信息。所有这些似乎都在工作(即报告信息),但服务类除外。我知道该服务已启动,因为(a)它执行了某些操作,(b)它实例化的线程正在发出Log.d消息。然而,即使在开始时:
@Override
public void onCreate() {
super.onCreate();
Log.d("SMS", "onCreate()");
onCreateReal();
}
此日志消息永远不会出现。我可能做错了什么?
清单如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.stuff.myapp"
android:versionCode="1111111"
android:versionName="0.1" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.stuff.myapp.Core"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="MyService"></service>
<receiver android:name="com.stuff.myapp.WidgetInitiator">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_information"/>
</receiver>
<activity android:name="com.stuff.myapp.ConfigWidgetActivity"
android:theme="@android:style/Theme.Translucent">
</activity>
</application>
[编辑:另一个观察] 作为应用程序的一部分,我每2分钟调用一次BroadcastReceiver类(在测试中)。该类是独立的(即不在任何其他类中)。它每次由AlarmManager调用时都会执行Log.d。但只有一些Log调用才能使它成为logcat。同样,建议欢迎这里可能发生的事情。
[编辑:我已经纠正了上述情况,因为它实例化的线程报告日志调用正确,但它实例化的类没有。]
答案 0 :(得分:1)
我已经做了很多工作来解决潜在的问题(参见Service being re-Created by AlarmManager),但我仍然遇到了这个问题。该服务仍然没有记录。没有理由我可以解释,改变TAG从&#34; SMS&#34;到&#34; SMservice&#34;使它工作。除了似乎解决问题之外,我无法提供任何好的解释。
并且,为了节省您的要求,如果我将TAG更改回&#34; SMS&#34;消息再次消失。
答案 1 :(得分:0)
你应该在logcat中使用“tag:SMS”作为过滤器。