OnResume вызывается много раз, даже после того, как он выходит на передний план. Почему?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 OnResume вызывается много раз, даже после того, как он выходит на передний план. Почему?

Сообщение Anonymous »

Я хочу вызывать onResume только тогда, когда мое приложение работает в фоновом режиме. У меня есть два действия A и B. При переключении с действия B на A мне нужно предотвратить вызов onPause() и onResume(). Если моего приложения больше нет на экране или оно переходит в фоновое состояние, следует вызывать только onResume и onPause. Ниже приведен мой фрагмент кода. пожалуйста, помогите!
BiometricManager mBiometricManager;
UserSession userSession;
boolean shouldExecuteOnFirstTime;
boolean isPaused = true;
private Dialog dialog;
private ActivityNewMainBinding binding;
SharedPreferences mPrefs;
SharedPreferences.Editor prefsEditor;

@Override
protected void onPause() {
super.onPause();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
isPaused = pm.isScreenOn();

}

@Override
protected void onPostResume() {
super.onPostResume();
/* */
if(isPaused)
{
if (shouldExecuteOnFirstTime) {
if (userSession.isLoggedInV2()) {
Intent intent = new Intent(this, LocksWithoutKeystoreActivity.class);
startActivity(intent);
mBiometricManager = new BiometricManager.BiometricBuilder(getApplicationContext())
.setTitle(getString(R.string.biometric_title))
.setDescription(getString(R.string.biometric_description))
.setNegativeButtonText(getString(R.string.biometric_negative_button_text))
.build();
//start authentication
mBiometricManager.authenticate(new BiometricCallback() {
@Override
public void onSdkVersionNotSupported() {
Toast.makeText(getApplicationContext(),
getString(R.string.biometric_error_sdk_not_supported),
Toast.LENGTH_LONG).show();

}

@Override
public void onBiometricAuthenticationNotSupported() {
Toast.makeText(getApplicationContext(), getString(R.string.biometric_error_hardware_not_supported), Toast.LENGTH_LONG).show();

}

@Override
public void onBiometricAuthenticationNotAvailable() {
Toast.makeText(getApplicationContext(), getString(R.string.biometric_error_fingerprint_not_available), Toast.LENGTH_LONG).show();
startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

}

@Override
public void onBiometricAuthenticationPermissionNotGranted() {

}

@Override
public void onBiometricAuthenticationInternalError(String error) {

}

@Override
public void onAuthenticationFailed() {

}

@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onAuthenticationCancelled() {
Intent intent = new Intent(getApplicationContext(), LocksWithoutKeystoreActivity.class);
startActivity(intent);
Toast.makeText(getApplicationContext(), getString(R.string.biometric_cancelled), Toast.LENGTH_SHORT).show();
mBiometricManager.cancelAuthentication();

}

@Override
public void onAuthenticationSuccessful() {
try {
Intent intent = new Intent(getApplicationContext(), MainDashBoardActivity.class);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}

}

@Override
public void onAuthenticationHelp(int helpCode, CharSequence helpString) {

}

@Override
public void onAuthenticationError(int errorCode, CharSequence errString) {

}
});

}
} else {
shouldExecuteOnFirstTime = true;
}
}

}


Подробнее здесь: https://stackoverflow.com/questions/624 ... ground-why
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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