Android の Application クラスにスレッドを記述できますか? このスレッドは 5 分ごとに実行され、データを Web サービスに投稿します。
public class MyApplication extends Application {
@Override
public void onCreate() {
startUploadGPSTimer();
}
private void startUploadGPSTimer() {
gpsTimerHandler.postDelayed(runnable, 5* 60 * 1000); // start Timer
}
private Handler gpsTimerHandler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
Map<String, String> params = new HashMap<String, String>();
params.put("latitude", Global.CUR_LATITUDE);
params.put("longitude", Global.CUR_LONGITUDE);
WebServiceObj obj = new WebServiceObj("upload",
WebServiceMethod.METHOD_UPLOAD_GPS,
Utilly.getSoapParams(params));
SoapService service = null;
SoapObject result = null;
service = new SoapService(obj.tag);
result = service.LoadResult(obj);
Log.i("post webservrce ", result.toString());
gpsTimerHandler.postDelayed(this, 5 * 60 * 1000);
}
};
私のアプリケーションがバックグラウンドに入ると、このスレッドは実行されません。スレッドに投稿したデータのため、最終的にデータベースに入力しましたが、dbで見つかりません。
なんで?
データをWebサービスに投稿するときにログを書きます。ログがランダムに生成されることがわかりました。非常に奇妙な