更新#2。私の最初の質問は、答えてくれた2人の優しさによって解決されました. どうやら、結果のコードが実行中に GPS を停止しないという事実について、新しい質問を開始する必要があるようです。しかし、今はエラーがないので、方法がわかれば解決済みとしてマークします:-)
アップデート。
コメントのおかげで「機能する」コードがありますが、唯一の問題は、本来の機能を実行しないことです。エラーがないという点で動作しています。
機能させるために、これをアクティビティの上部にグローバルに追加しました。
protected LocationListener ll;
protected LocationManager lm;
そして、このOnPauseコードを使用しました
@Override
protected void onPause() {
if(lm != null) {
lm.removeUpdates(ll);
}
ll = null;
lm = null;
super.onPause();
}
すべてが電話でコンパイルおよび実行されます。GPS 位置情報が表示されます。問題は、アプリケーションを終了した後にバッテリーが切れないように、目的が GPS をオフにすることであるということです。しかし、GPS はオンのままです。これは一般的な苦情であり、回答がありません。lm.removeUpdates(ll) が解決策だと思いましたが、機能していません。
--------------- 元の投稿 --------------------------
GPS の更新を停止する OnPause コードを追加したいと考えています。私は質問と回答の両方のstackoverflowからのコードの少なくとも1ダースの例にうんざりしており、すべてEclipseでエラーを出しています。
私の GPS コードはここにあります (正常に動作します):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textLat = (TextView)findViewById(R.id.textLat);
textLong = (TextView)findViewById(R.id.textLong);
textTimex = (TextView)findViewById(R.id.textTimex);
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
class mylocationlistener implements LocationListener{
@Override
public void onLocationChanged(Location location) {
if (location != null)
{
double pLat = location.getLatitude();
double pLong = location.getLongitude();
long pTime = location.getTime();
DecimalFormat df = new DecimalFormat("#.######");
textLat.setText(df.format(pLat));
textLong.setText(df.format(pLong));
textTimex.setText(Long.toString(pTime));
//textTimex.setText(Long.toString(pTime));
//textTimex.setText(df.format(pLong));
}
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
}
Web 上の例からコードを取得していますが、どれも機能しません。これが1つです
@Override
public void onPause() {
lm.removeUpdates(locationListener);
super.onPause();
}
私が lm と呼んでいるものは問題ではありません。解決できないというエラーが表示されます。どのサンプル コードを使用しても問題ありません。エラーのないコードはありません。
私は非常に単純に愚かなことをしているに違いない...