ログアウト時にAndroidで位置情報の更新を停止する方法

スワプナ

アプリで認証済みユーザーの継続的な位置更新を使用しています。アプリからログアウトすると、クラッシュします。位置情報の更新によりアプリがクラッシュすることに気づいたのでlocmngr.removeUpdates(this)、認証されたユーザーがいない場合は、位置情報の更新を削除することを考えましたユーザーがクリックするlogout mAath.getUid()とnullになり、発生するエラーはですAttempt to invoke virtual method 'boolean java.lang.String.isEmpty()' on a null object reference

try {
    locmngr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 7, 30, new LocationListener() {
        @Override
        public void onLocationChanged(final Location location) {

            // Add a marker at your current location and move the camera
            Log.e("location", location.toString());
            Log.e("location", "updating");
            // Toast.makeText(ProfileNavigation.this, "Location : "+location.getLatitude()+" , "+location.getLongitude(), Toast.LENGTH_SHORT).show();
            //double a = location.getLongitude();
            //double  b = location.getLatitude();
            if(!mAuth.getUid().isEmpty()) {

                db.collection("UserProfile").document(mAuth.getUid()).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if (task.isSuccessful()) {
                            DocumentSnapshot documentSnapshot = task.getResult();
                            if (documentSnapshot.exists()) {

                                Log.e("maps", "updating");
                                Map<String, Object> data = new HashMap<>();
                                data.put("Latitude", location.getLatitude());
                                data.put("Longitude", location.getLongitude());

                                db.collection("UserProfile").document(mAuth.getUid())
                                        .set(data, SetOptions.merge())
                                        .addOnSuccessListener(new OnSuccessListener<Void>() {
                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                Log.e("maps", "DocumentSnapshot successfully written!");
                                            }
                                        })
                                        .addOnFailureListener(new OnFailureListener() {
                                            @Override
                                            public void onFailure(@NonNull Exception e) {
                                                Log.e("maps", "Error writing document", e);
                                            }
                                        });
                            } else {

                                Log.e("firestore", "Error getting documents.", task.getException());
                            }
                        } else {

                            Log.e("firestore", "Error getting documents.", task.getException());
                        }
                    }
                });

            }
            else {
                locmngr.removeUpdates(this);
            }
        }
    }
}
ヘマントパルマー

removeUpdatesメソッド内のonPause()メソッドを呼び出します。

@Override
protected void onPause() {
    super.onPause();
    locmngr.removeUpdates(this);
    Log.i(TAG, "onPause, done");
}

また、あなたは得ています:

仮想メソッドの呼び出しを試みます 'boolean java.lang.String.isEmpty()

if(logout mAath.getUid()!=null){
//do operation here
}

それがあなたを助けることを願っています!!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アプリがバックグラウンドにあるときに位置情報の更新を取得する

分類Dev

Android-余分な隠し情報を(タグで)レイアウトに保存する方法

分類Dev

ベストプラクティス:バックグラウンドで位置情報の更新を取得する

分類Dev

グーグルマップv2アンドロイドで情報ウィンドウ(カスタム)の位置を変更する方法は?

分類Dev

ダイアログなしでAndroidで位置情報サービスを有効にする

分類Dev

別のアカウントにアクセスするために、実行中のCLI GoプログラムからAWS認証情報を更新する

分類Dev

Android Studio-シンプルなダイアログボックスで位置情報を有効にする

分類Dev

再起動後に位置情報の更新を受信する方法

分類Dev

出力ウィンドウでTensorflowログ情報を非表示にする方法

分類Dev

ローカルのgithubアカウント情報を更新する

分類Dev

Swiftで30分ごとに位置情報の更新を送信する

分類Dev

PHPでユーザーアカウント情報の複数の列を更新する方法

分類Dev

Androidフラグメントに簡単なOK情報ダイアログボックスを追加する方法

分類Dev

テスト時に認証情報を保存するためのGoogleSmartLockダイアログが表示されない

分類Dev

画面がオフのときにフォアグラウンドサービスがAndroid7.0以降で位置情報の更新を受信しない

分類Dev

バックグラウンドサービスで位置情報の更新を取得する

分類Dev

すべてのコントローラーで情報を呼び出すことなく、レイアウトに情報を追加する

分類Dev

スクロール時に上部のレイアウト位置を修正する方法

分類Dev

流星アカウントでTwitterのプロフィール情報を取得する方法-twitter?

分類Dev

IntelliJ IDEAでデバッグするときにはGoogle App Engineにサービスアカウントの資格情報を追加する方法?

分類Dev

ログインとログアウトの時間をsqliteDBに保存する方法

分類Dev

google- / playstoreアカウントなしでAndroidの位置情報サービスを使用できますか?

分類Dev

グローバル変数の変更時にノックアウトを更新する方法

分類Dev

Firebaseログアウト時にViewControllerを更新する

分類Dev

ログアウト時に時間間隔サービスを停止する

分類Dev

Laravelで自動ログアウトadminpanelを停止する方法は?

分類Dev

プログラムで情報ウィンドウを非表示にする方法をすばやく

分類Dev

アカウント情報の編集を無効にする

分類Dev

グーグルマップの複数のマーカーの情報ウィンドウを開いたままにする方法アンドロイド

Related 関連記事

  1. 1

    アプリがバックグラウンドにあるときに位置情報の更新を取得する

  2. 2

    Android-余分な隠し情報を(タグで)レイアウトに保存する方法

  3. 3

    ベストプラクティス:バックグラウンドで位置情報の更新を取得する

  4. 4

    グーグルマップv2アンドロイドで情報ウィンドウ(カスタム)の位置を変更する方法は?

  5. 5

    ダイアログなしでAndroidで位置情報サービスを有効にする

  6. 6

    別のアカウントにアクセスするために、実行中のCLI GoプログラムからAWS認証情報を更新する

  7. 7

    Android Studio-シンプルなダイアログボックスで位置情報を有効にする

  8. 8

    再起動後に位置情報の更新を受信する方法

  9. 9

    出力ウィンドウでTensorflowログ情報を非表示にする方法

  10. 10

    ローカルのgithubアカウント情報を更新する

  11. 11

    Swiftで30分ごとに位置情報の更新を送信する

  12. 12

    PHPでユーザーアカウント情報の複数の列を更新する方法

  13. 13

    Androidフラグメントに簡単なOK情報ダイアログボックスを追加する方法

  14. 14

    テスト時に認証情報を保存するためのGoogleSmartLockダイアログが表示されない

  15. 15

    画面がオフのときにフォアグラウンドサービスがAndroid7.0以降で位置情報の更新を受信しない

  16. 16

    バックグラウンドサービスで位置情報の更新を取得する

  17. 17

    すべてのコントローラーで情報を呼び出すことなく、レイアウトに情報を追加する

  18. 18

    スクロール時に上部のレイアウト位置を修正する方法

  19. 19

    流星アカウントでTwitterのプロフィール情報を取得する方法-twitter?

  20. 20

    IntelliJ IDEAでデバッグするときにはGoogle App Engineにサービスアカウントの資格情報を追加する方法?

  21. 21

    ログインとログアウトの時間をsqliteDBに保存する方法

  22. 22

    google- / playstoreアカウントなしでAndroidの位置情報サービスを使用できますか?

  23. 23

    グローバル変数の変更時にノックアウトを更新する方法

  24. 24

    Firebaseログアウト時にViewControllerを更新する

  25. 25

    ログアウト時に時間間隔サービスを停止する

  26. 26

    Laravelで自動ログアウトadminpanelを停止する方法は?

  27. 27

    プログラムで情報ウィンドウを非表示にする方法をすばやく

  28. 28

    アカウント情報の編集を無効にする

  29. 29

    グーグルマップの複数のマーカーの情報ウィンドウを開いたままにする方法アンドロイド

ホットタグ

アーカイブ