GPS 座標をデータベースに送信するためのスレッドを作成できるように、ルーパーを実装しようとしています。私はJavaが初めてで、これはすべて本当に混乱していますが、助けてくれるかもしれません. 次のクラス メソッドは、ボタンが押されたときにメイン アクティビティによって呼び出されます。このメソッドは GPS 位置を検出し、それを別のクラスのメソッドに送信します。このメソッドは緯度と経度 (ユーザー ID と共に) をデータベースに送信します。アプリの速度が低下したりフリーズしたりする問題が時々発生するため、このプロセス用の新しいスレッドを作成する方法を実装する必要があるようです。何か案は。初心者なのでお手柔らかに。これが私のコードです:
public class LocationActivity extends Thread{
private LocationManager locManager;
private LocationListener locListener;
public void startLocation(Context context, String usr_id2)
{
final String usr = usr_id2;
//get a reference to the LocationManager
locManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
//checked to receive updates from the position
locListener = new LocationListener() {
public void onLocationChanged(Location location) {
SendActivity.send(location, usr);
}
public void onProviderDisabled(String provider){
//labelState.setText("Provider OFF");
}
public void onProviderEnabled(String provider){
//labelState.setText("Provider ON ");
}
public void onStatusChanged(String provider, int status, Bundle extras){
//Log.i("", "Provider Status: " + status);
}
};
Looper looper = null;
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener, looper);
}
}
もう 1 つの質問ですが、ルーパーをここに追加するか、実際に情報をデータベースに送信するクラスに追加しますか? HTTP Post を使用して、情報を MySQL データベースに追加する PHP プログラムに送信します。