Android Logcat不显示调试标记
我正在开发一个应用程序。在其中,我正在活动中使用工作线程。我的应用程序有一些问题,我尝试使用调试标签找出问题所在。但是logcat不显示线程内部的标记。我是新手,所以对此不太了解 这是密码Android Logcat不显示调试标记,android,android-logcat,Android,Android Logcat,我正在开发一个应用程序。在其中,我正在活动中使用工作线程。我的应用程序有一些问题,我尝试使用调试标签找出问题所在。但是logcat不显示线程内部的标记。我是新手,所以对此不太了解 这是密码 package com.example.forgetmenot; import java.util.ArrayList; import java.util.Calendar; import android.app.Service; import android.content.Intent; import
package com.example.forgetmenot;
import java.util.ArrayList;
import java.util.Calendar;
import android.app.Service;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class BirthdayService extends Service{
SQLiteDatabase db;
BirthdayDatabase myDatabase = new BirthdayDatabase(this, null, null, 0);
private ArrayList<String> data = new ArrayList<String>();
Handler handler = new Handler();
String form[] ={"_id","name","contact","day","month","year"};
String TAG = "Debug";
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
// Toast.makeText(this,"birthday Service started", Toast.LENGTH_SHORT).show();
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Calendar cal = Calendar.getInstance();
new Thread(new Runnable() {
@Override
public void run() {
Calendar cal = Calendar.getInstance();
int mDay = cal.get(Calendar.DAY_OF_MONTH);
int mMonth = cal.get(Calendar.MONTH);
Log.d(TAG, "Current day: "+mDay);
Log.d(TAG,"Current month: "+mMonth);
int birthDay = 0;
int birthMonth = 0;
final Cursor mycursor = db.query("birthdays", form, null, null, null, null, null, null);
while(mycursor.moveToNext()){
birthDay = mycursor.getInt(3);
birthMonth = mycursor.getInt(4);
Log.d(TAG, "birhDay:"+birthDay);
Log.d(TAG, "birthMonth:"+birthMonth);
if(mDay == birthDay && mMonth == birthMonth)
{
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getBaseContext(), "Happy Birthday "+mycursor.getString(1), Toast.LENGTH_SHORT).show();
}
});
db.close();
break;
}
}
db.close();
}
});
Toast.makeText(this, "BirthdayService", Toast.LENGTH_SHORT).show();
return 0;
}
}
package com.example.forgetmenot;
导入java.util.ArrayList;
导入java.util.Calendar;
导入android.app.Service;
导入android.content.Intent;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.os.Handler;
导入android.os.IBinder;
导入android.util.Log;
导入android.widget.Toast;
公共类生日服务扩展了该服务{
sqlitedb数据库;
BirthdayDatabase myDatabase=新的BirthdayDatabase(this,null,null,0);
private ArrayList data=new ArrayList();
Handler=newhandler();
字符串形式[]={“\u id”,“name”,“contact”,“day”,“month”,“year”};
String TAG=“Debug”;
@凌驾
公共IBinder onBind(意图arg0){
返回null;
}
@凌驾
public void onCreate(){
//Toast.makeText(此“生日服务已开始”,Toast.LENGTH_SHORT).show();
super.onCreate();
}
@凌驾
公共空间{
super.ondestory();
}
@凌驾
公共int onStartCommand(Intent Intent、int标志、int startId){
Calendar cal=Calendar.getInstance();
新线程(newrunnable()){
@凌驾
公开募捐{
Calendar cal=Calendar.getInstance();
int mDay=cal.get(日历日/月);
int mMonth=cal.get(日历月);
日志d(标签“当日:+mDay”);
日志d(标记“当前月份:+mm”);
int生日=0;
int生日月=0;
最终游标mycursor=db.query(“生日”,表单,null,null,null,null,null);
while(mycursor.moveToNext()){
生日=mycursor.getInt(3);
birthMonth=mycursor.getInt(4);
Log.d(标签“birhDay:+生日”);
Log.d(标签“生日:”+生日);
如果(mDay==生日和mMonth==生日月)
{
handler.post(新的Runnable(){
@凌驾
公开募捐{
Toast.makeText(getBaseContext(),“生日快乐”+mycursor.getString(1),Toast.LENGTH_SHORT.show();
}
});
db.close();
打破
}
}
db.close();
}
});
Toast.makeText(这是“生日服务”,Toast.LENGTH_SHORT).show();
返回0;
}
}
您必须确保在“设备信息”选项卡中选择的模拟器或设备,
如果仍然找不到,请重置adb,然后请选择您的模拟器,然后重试
仍然会遇到同样的问题,然后重新启动eclipse或adb。启动您在onStartCommand中创建的线程。这不是问题“您在描述什么”。问题是标记位于工作线程内部。所以worker中的标签在logcat中显示值。谢谢老兄,我忘记启动这个线程了。。。多么幼稚的错误啊。