마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SQLite 에러 좀 부탁드립니다.

0 추천
package com.androday.test;

import android.app.Activity;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	Button btnStopService;
	Button btnSaveService;
	
	Intent intentMyService;
	BroadcastReceiver receiver;

	boolean flag = true;

	Toast toast;// 시작 메세지 Toast

	TextView CountText;

	String serviceData;
	MYDBOpenHelper mydb;
	SQLiteDatabase mdb;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		intentMyService = new Intent(this, MyServiceIntent.class);
		// 실행되기 원하는 서비스 등록

		receiver = new MyMainLocalRecever();

		CountText = (TextView) findViewById(R.id.countText);

		btnStopService = (Button) findViewById(R.id.btnStopService);
		// 서비스 중지

		btnStopService.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				if (flag) {
					//위 선언된 버튼의 text를 stop으로 바꿈
					btnStopService.setText("멈춤 !!");

					// TODO Auto-generated method stub
					try {//함수들 호출

						IntentFilter mainFilter = new IntentFilter(
								"com.androday.test.step");

						registerReceiver(receiver, mainFilter);

						startService(intentMyService);
						// txtMsg.setText("After stoping Service:\n"+service.getClassName());
						Toast.makeText(getApplicationContext(), "카운트를 시작합니다", 1)
								.show();
					} catch (Exception e) {
						// TODO: handle exception
						Toast.makeText(getApplicationContext(), e.getMessage(),
								1).show();
					}
				}

				else {

					btnStopService.setText("시작 !!");

					// TODO Auto-generated method stub
					try {

						unregisterReceiver(receiver);

						stopService(intentMyService);

						Toast.makeText(getApplicationContext(), "서비스 중지", 1)
								.show();
						// txtMsg.setText("After stoping Service:\n"+service.getClassName());
					} catch (Exception e) {
						// TODO: handle exception
						Toast.makeText(getApplicationContext(), e.getMessage(),
								1).show();
					}
				}

				flag = !flag;

			}
		});

		btnSaveService = (Button) findViewById(R.id.btnSaveService);
		btnSaveService.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {

				mydb = new MYDBOpenHelper(MainActivity.this);
				mdb = mydb.getWritableDatabase();
				mdb.execSQL("insert into score values(null, null," + serviceData
						+ ")");

				startActivity(new Intent(MainActivity.this, ScoreActivity.class));

			}
		});

	class MyMainLocalRecever extends BroadcastReceiver {

		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub

			serviceData = intent.getStringExtra("serviceData");

			CountText.setText(serviceData);

			Toast.makeText(getApplicationContext(), "Walking . . . ", 1).show();

		}

	}

}

만보기 어플 구현하려고 합니다. btnSaveService 버튼 누르면 카운트를 저장하려고 하는데요 

btnSaveService = (Button) findViewById(R.id.btnSaveService);
btnSaveService.setOnClickListener(new OnClickListener() {
 
@Override
public void onClick(View arg0) {
 
mydb = new MYDBOpenHelper(MainActivity.this);
mdb = mydb.getWritableDatabase();
mdb.execSQL("insert into score values(null, null," + serviceData
+ ")");
 
startActivity(new Intent(MainActivity.this, ScoreActivity.class));
 
}
});
 
 
에러가 자꾸 납니다.!!!!!!
 
[2014-02-10 14:23:42 - ddms] Can't bind to local 8600 for debugger
[2014-02-10 14:23:42 - ddmlib] 현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다
java.io.IOException: 현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:642)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:488)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:763)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)

 

 

생성은 

db.execSQL("CREATE TABLE score(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, score TEXT);");

다른 액티비티는 이겁니다.

public class ScoreActivity extends Activity {
 
private MYDBOpenHelper mydb;
private SQLiteDatabase mdb;
private Cursor cursor;
private ListView lv;
private SimpleCursorAdapter ca;
private String strCol[] = { "name", "score" };
 
@Override
protected void onCreate(Bundle savedInstanceState) {
 
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
   setContentView(R.layout.scorelist);
   
   mydb = new MYDBOpenHelper(ScoreActivity.this);
mdb = mydb.getWritableDatabase();
 
cursor = mdb.rawQuery("select * from score order by score desc", null);
 
lv = (ListView) findViewById(R.id.score_list);
ca = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2,
cursor, strCol, new int[] { android.R.id.text1,
android.R.id.text2 });
lv.setAdapter(ca);
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
}
}
 
tpwls1224 (160 포인트) 님이 2014년 2월 10일 질문
tpwls1224님이 2014년 2월 10일 수정

2개의 답변

0 추천
해당로그는 디비와는 전혀 상관이 없는 로그 입니다.

해당로그는 디바이스 연결이 끊어 졌을시에 콘솔창에 나오는 로그인데....

머 디바이스가 끊어지는 일은 경우에 수가 너무 많으니.....

해결책은 드릴 수 없으나 원인은 디바이스의 연결이 해제된게 원인입니다.
ThisPlus (46,920 포인트) 님이 2014년 2월 10일 답변
아!!! 에러 로그 다시 올릴게요,,.!!!!
0 추천
새로 올린 로그도 봤는데 DB와는 관계없는 에러로 보입니다.

 

해당 에러는 액티비티를 매니페스트에 등록하지 않아서 나타나는 것으로 보이네요

 

매니페스트에 ScoreActivity 를 액티비티로 선언하셔야 할거 같습니다.
익명사용자 님이 2014년 2월 11일 답변
...