0
내가는 myService라는 서비스 클래스를 가지고 있고이 서비스 여기Android - 서비스가 실행되는 동안 서비스 간격 시작을 중지하는 방법?
를 실행하는 간격을 사용하는 코드입니다 :
public class myService extends Service {
public Runnable mRunnable = null;
IBinder mBinder = new LocalBinder();
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
public class LocalBinder extends Binder {
public myService getServerInstance() {
return myService.this;
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
final Handler mHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
Log.d("Service jalan", "beneran dah");
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
List<Contact> contacts = db.getAllContacts();
for (Contact cn : contacts)
{
int idsql = cn.getID();
if(String.valueOf(cn.getFlag()).equals("0")){
Log.d("Id", String.valueOf(cn.getID()) + " Flag :" + cn.getFlag());
sending a = new sending(); //communicate to server
a.execute();
}
else
{
Log.d("Data kosong", "atau tidak ada flag = 0");
}
}
mHandler.postDelayed(mRunnable, 30 * 1000);
}
};
mHandler.postDelayed(mRunnable, 30 * 1000);
return super.onStartCommand(intent, flags, startId);
}
}
문제 :
때 내 여전히 if statement
에서 실행중인 서비스 그러나 이미 간격 30 초 동안 반복하면 내 서비스가 다시 시작됩니다
어떻게 피할 수 있습니까?
에로 다시 시작하기 전에 서비스가 진행 중인지 여부를 확인하는 플래그를 사용할 수 있습니까? – flix