0

ログイン アクティビティで、ユーザーが GPS をアクティブ化/オンにしているかどうかを確認します。そうでない場合は、AlertDialogユーザーに GPS をオンにするように求めるメッセージを表示します。

から、AlertDialog次のようにインテントを起動/開始します。

Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(settingsIntent);

システム設定から戻るボタンを押すと、ユーザーは電話のホーム画面に戻ります...つまり、「アプリを閉じます」。

私は試してみonActivityResultましたが、役に立ちませんでした。さらに、私は他のユーザーが抱えていた同様の問題を読み上げましたが、ほとんどの回答がonActivityResult.

誰かが問題に光を当てることができますか?

編集: の完全なコードは次のAlertDialogとおりです。

builder = new AlertDialog.Builder(this);
builder.setTitle("GPS Not Found");
builder.setMessage("Want To Enable?");

//Dialog - Yes option
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialogInterface, int i)
{
Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(settingsIntent,1);
}
});

//Dialog - No option                
builder.setNegativeButton("No", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialogInterface, int i)
{

}
});

//Show he dialog
builder.create().show();

編集: ここにOnPause()OnResume()メソッドがあります。プロバイダーがまだアクティブかどうかを確認するだけで、locationManager. 設定から戻ると、「TEST 1」も「TEST 2」も印刷されません。

@Override
protected void onResume()
{
  Log.i(ERRORTAG, "TEST 1");

  super.onResume();
  if(provider != null)
  {
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, refreshTime, refreshDistance, this);
    gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  }
}


@Override
protected void onPause()
{
  Log.i(ERRORTAG, "TEST 2");


  super.onPause();
  if(locationManager != null)
  {
    locationManager.removeUpdates((LocationListener) this);
    gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  }


  if(loginDialog != null)
  {
    loginDialog.dismiss();
  }
}
4

2 に答える 2

0

問題を整理しました。マニフェスト ファイルでは、アクティビティにはnoHistory="true"(私の理解では) スタックに追加されないタグがありました。したがって、アクティビティに「戻る」ことはできません。

于 2013-01-17T10:51:22.427 に答える
0

または のfinish();後にどこかに電話していますか? アクティビティのライフ サイクルを見ると 、Settings-Intent を開始したときに呼び出されることがわかります。startActivity()onPause()
onPause()

于 2013-01-14T15:58:14.143 に答える