0

次のようなコードがあるとします。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_msmap);
    setUpMapIfNeeded();
    if (mMap == null) {
      return;
    }

アクティビティを開始する前に、Google マップ ライブラリが利用可能であることを確認しました。ただし、SIM カードやインターネット接続がない場合でも、mMap は null を返します。

Google マップ/Google プレイでは、実際には「利用できません」というエラーが [OK] ボタンで表示されるため、これが機能すると考える人もいるでしょう。しかし、それをクリックすると、アプリがハングします...

むしろ、mMap == null の場合、アクティビティ コンストラクターを終了してエラーを表示し、前のアクティビティに戻りたいと考えています。何らかの方法でそれを優雅に行う方法はありますか?

4

4 に答える 4

1
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_msmap);
    setUpMapIfNeeded();
    if (mMap == null) {
        AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);
        dlgAlert.setMessage("Whatever your error is");
        dlgAlert.setTitle("Title");
        dlgAlert.setPositiveButton("Ok",
            new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            finish();
            }
        });
        dlgAlert.create().show();
    }
}
于 2013-04-09T16:47:51.783 に答える