(РЕШЕНО) Приложение выдает ошибку при открытии из последних приложений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»