ベースのアプリが動作していGPS
ます。多くのアクティビティがあり、すべてがGPS
. たとえば、あるアクティビティはある場所までの距離を示し、別のアクティビティは速度と方向を示します。私はセットアップして電話requestLocationUpdates()
をかけonCreate()
、電話をかけremoveUpdates()
ますonPause()
。
これはすべて機能しますが、GPS
アクティビティを切り替えるときに点滅し、再取得する必要があります。私はテストを行いましたがremoveUpdates()
、onStop()
代わりにを入れてonPause()
も点滅はありません。どうやらonStop()
新しいアクティビティが開始された後に呼び出され、まばたきの欠如を説明しています。
この件に関する投稿を読みましたが、意見の相違があるようです。ただし、使用する必要があるようで、使用onStop()
しない理由があるかどうか疑問に思っています。
2 番目の問題は、onResume()
コードがないためGPS
、戻る矢印の後に、または画面のオフとオンの後にがないことです。これを修正する必要があります。現在、私のonCreate()
コードはロケーションマネージャーを作成し、基本的にすべてのコードをその中に含んでいます。removeUpdates()
を onStop に移動し、lm と ll の作成を に移動する必要があるライフ サイクル フローチャートに従うように見えますonStart()
。これは正しいです?
これが私のonCreate()
コードです:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.set);
textView1 = (TextView)findViewById(R.id.textView1);
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
ここに私のonPauseコードがあります:
@Override
protected void onPause() {
super.onPause();
if(lm != null) {
lm.removeUpdates(ll);
}
ll = null;
lm = null;
}
したがって、onPause() を onStop() に変更し、onStart() を次のようにする必要があると思います。
@Override
public void onStart() {
super.onStart();
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
そして、私のonCreateコードは次のとおりです。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.set);
textView1 = (TextView)findViewById(R.id.textView1);
}
これは、私はこれらすべてに不慣れで、これが私の最初のアプリケーションであるため、ここで何が欠けているかを知りたいと言いました.