(РЕШЕНО) Приложение выдает ошибку при открытии из последних приложенийAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 (РЕШЕНО) Приложение выдает ошибку при открытии из последних приложений

Сообщение Anonymous »


В моем приложении есть SplashActivity, приложение запускается с этим действием. SplashActivity имеет продолжительность 2,5 секунды, по истечении этого времени открывается HomeActivity. При нажатии кнопки «Назад» в HomeActivity приложение завершается с помощью FinishAffinity(). Всякий раз, когда я выхожу из HomeActivity и затем снова нажимаю на свое приложение из последних приложений, приложение не может перезапуститься. Я получаю информацию о пользователе в SplashActivity и передаю ее HomeActivty и использую для этого Firebase.

Когда приложение не может запуститься, возникает следующая ошибка:

java.lang.RuntimeException: невозможно начать действие ComponentInfo{com.medita.mobile/com.medita.mobile.SplashActivity}: com.google.firebase.database.DatabaseException: вызовы setPersistenceEnabled() должны быть выполнены перед любым другое использование экземпляра FirebaseDatabase.

Как это исправить? Я хочу, чтобы приложение перезагружалось с помощью SplashActivity, когда я выхожу из HomeActivity, нажимая кнопку «Назад» и снова нажимая на приложение в разделе «Недавние приложения».

Я попытался закрыть действие, удалив его из последних приложений при закрытии (finishAndRemoveTask()), но ничего не помогло. Поэтому я думаю, что на SplashActivity все заканчивается. Также я попробовал FinishAffinity() в методах onStop() onPause(), но это тоже не сработало.

Мой файл манифеста;

SplashActivity;

публичный класс SplashActivity расширяет AppCompatActivity { частный FirebaseAuth mAuth = FirebaseAuth.getInstance(); частный FirebaseUser currentUser; частная ссылка на базу данных currentUserRef; частная база данныхReference userRef; Строковое имя пользователя = null; Строка электронной почты = ноль; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.splash_screen); FirebaseApp.initializeApp(это); FirebaseDatabase.getInstance().setPersistenceEnabled(истина); ... новый Handler().postDelayed(новый Runnable(){ @Override общественный недействительный запуск () { если (currentUser!= ноль) { getLoggedInUsername(); Намерение домой = новое намерение (SplashActivity.this, HomeActivity.class); startActivity (дом); overridePendingTransition(0,R.anim.fade_out); заканчивать(); } еще { Намерение mainIntent = новое намерение (SplashActivity.this, LoginActivity.class); SplashActivity.this.startActivity(mainIntent); SplashActivity.this.finish(); overridePendingTransition(0,R.anim.fade_out); } } }, 2500); } частная строка getLoggedInUsername() { FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); ... вернуть имя пользователя; } } HomeActivtiy;

@Override общественный недействительный onBackPressed () { закончитьАффинити(); } Вот как я решил свою проблему;

Я добавил этот код в свою SplashActivity.
статический { FirebaseDatabase.getInstance().setPersistenceEnabled(истина); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»