다음과 같은 것이 가능한지 알고 싶습니다. 데이터베이스를 변경하는 활동과 서비스를 원한다면 활동이 실행을 멈추더라도 서비스가 계속해서 데이터베이스의 내용에 액세스하고 변경할 수 있습니까?안드로이드에서 서비스의 SQLite 데이터베이스 사용하기
일단 서비스가 닫히면 서비스는 독립적으로 실행할 수 있지만 데이터베이스 액세스를 계속할 수 있는지 확실하지 않습니다.
다음과 같은 것이 가능한지 알고 싶습니다. 데이터베이스를 변경하는 활동과 서비스를 원한다면 활동이 실행을 멈추더라도 서비스가 계속해서 데이터베이스의 내용에 액세스하고 변경할 수 있습니까?안드로이드에서 서비스의 SQLite 데이터베이스 사용하기
일단 서비스가 닫히면 서비스는 독립적으로 실행할 수 있지만 데이터베이스 액세스를 계속할 수 있는지 확실하지 않습니다.
그것은 당신의 서비스에 액세스 DB를 가지고 완전히 가능합니다 - How to use SQLite from Services in Android?
보고 시도하는 것은 예, 응용 프로그램이 백그라운드로 이동하거나 응용 프로그램이 최근에서 강타를 사용하여 죽인 경우에도, 귀하의 서비스에 SQLite는 데이터베이스를 사용할 수 있습니다 응용 프로그램 목록.
아주 간단하게 demo을 만들었습니다.
빈 테이블이있는 데이터베이스입니다. 그리고 10 초마다 테이블에 서비스 기록이 있는지 여부가 표시됩니다. 응용 프로그램이 백그라운드에 있거나 살해 된 경우에도 그 토스트 메시지를 전합니다.
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
final Handler mHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
MyDBHelper myDBHelper = new MyDBHelper(getApplicationContext());
boolean isInfoAvailable = myDBHelper.isAnyInfoAvailable(getApplicationContext());
Toast.makeText(getApplicationContext(), String.valueOf(isInfoAvailable), Toast.LENGTH_LONG).show();
mHandler.postDelayed(mRunnable, 10 * 1000);
}
};
mHandler.postDelayed(mRunnable, 10 * 1000);
return super.onStartCommand(intent, flags, startId);
}
당신이 있는지 확인해야합니다 모든
은 다음과 같습니다서비스는 백그라운드에서 실행해야합니다.
매니페스트 파일에서 서비스를 위해 플래그 android:stopWithTask="false"
을 사용하십시오.
<service
android:name=".MyService"
android:enabled="true"
android:exported="true"
android:stopWithTask="false">
</service>
희망이 있습니다. :)
나를 위해 일해 줘서 고마워. – Codelover
안드로이드의 서비스에서 문제가없는 액세스 데이터베이스가 있습니다. –
서비스에서 데이터베이스에 항상 액세스 할 수 있으며, 해당 의무 사항에 대해 실행할 응용 프로그램이 필요하지 않습니다. – GrIsHu
[검색] (http://stackoverflow.com/questions/4242165/how-to-use-sqlite-from-services-in-android)? –