해결 방법을 도와주세요.
매 10 분마다 Sqlite 데이터베이스 데이터를 백그라운드 서비스를 사용하여 웹 서비스에 동기화하고, 병렬 Listview는 sqlite 데이터베이스에서 동일한 테이블 데이터를 가져옵니다.
서비스가 로컬 데이터베이스에서 웹 서비스로 데이터를 가져올 때마다 Listview에 데이터가 표시되지 않습니다.
또한 OnClick 목록보기 항목 전체 데이터가 다음 페이지에 표시되고 로컬 데이터베이스에서 가져 오며 빈 페이지가 표시됩니다.
백그라운드 서비스를 마친 후 Listview 및 다음보기 페이지에 데이터가 표시됩니다.
목록보기 페이지 ---> 항목보기 페이지에서.
iam 로컬 데이터베이스에서 목록보기로 데이터를 가져 오기 위해 커서 어댑터 사용.
친애하는 : 정기 서비스를 사용하십시오. 나는 이것과 같은 문제를 해결했다. 제 경우에는 이것이 코드였습니다.
서비스 코드 :
public class PeriodicService extends Service {
private static final long TIMEREQ = 10000 * 60;// 10 mints
public static String LOG = "Log";
private final Context mContext;
public UpdateServices(Context context) {
this.mContext = context;
}
public UpdateServices() {
super();
mContext = UpdateServices.this;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
Log.i(LOG, "Service started");
// save in sqlite after 10 mints
DatabaseManger db = new DatabaseManger(mContext);
db.open();
db.insert("anything", "data");
db.close();
// upload data to somewhere server
new CreateNewProduct(this).execute();
return START_NOT_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
Intent ishintent = new Intent(this, UpdateServices.class);
PendingIntent pintent = PendingIntent.getService(this, 0, ishintent, 0);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pintent);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
TIMEREQ, pintent);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Intent ishintent = new Intent(this, UpdateServices.class);
PendingIntent pintent = PendingIntent.getService(this, 0, ishintent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
manager.cancel(pintent);
Toast.makeText(this, "service stoped", Toast.LENGTH_SHORT).show();
}
}
여기에서 헬프 를 얻을 수 있습니다. 서비스 시작 및 중지
전화 시작 서비스. 서비스의 수명주기에 따라 서비스가 중지되면 destroy 메소드가 호출됩니다. 서비스 중지 후 보류 인 텐트는 귀하의 선택에 따라 서비스가 일정 기간 지연되는 경우 사용되지 않습니다.
활동 호출에서
btn_startService.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService(new Intent(About.this, UpdateServices.class));
}
});
btn_stopService.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopService(new Intent(About.this, UpdateServices.class));
}
});
목록보기를 위해 listadapter를 새로 고칩니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다