Минимизация активности в android - PullRequest
0 голосов
/ 26 марта 2020

Я работаю над автономным приложением для входа в систему с использованием SQLite. В целях безопасности мне нужно перейти к активности входа в систему, если приложение свернуто. я попробовал этот код в функции onPause

@Override
protected void onPause() {

    Intent intent = new Intent(dashboard.this, login.class);
    startActivity(intent);
    finish();

    super.onPause();
}  

, когда я пытаюсь перейти от этого действия к другому, и оно переходит к действию входа в систему. Я надеюсь, что когда я перехожу к другой деятельности, текущая активность будет приостановлена. вот почему он переходит к активности входа в систему.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

вы должны установить логическое значение для обработки loginActivity;

boolean mustGoToLoginActivity=true;

, если хотите go к другому действию, сначала установите для этого логического значения значение false, например:

public void goToAnotherActivity(){
      mustGoToLoginActivity=false;
      //...
       startActivity(anotherActivity);
}

и в методе onResume() установите значение true. затем в onPause() метод:

@Override
protected void onPause() {

if(mustGoToLoginActivity){
   Intent intent = new Intent(dashboard.this, login.class);
   startActivity(intent);
   finish();
}

super.onPause();

}

0 голосов
/ 27 марта 2020

Вы правы, этот сценарий не будет работать. То, что вы можете сделать, это использовать stati c boolean для достижения такого поведения.

public class MainActivity extends AppCompatActivity {
   static Boolean navigateToLogin =false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (navigateToLogin) {
            move();
            navigateToLogin =false;
        }
    }

    private void move() {
        Intent intent = new Intent(this, newActivity.class);
        startActivity(intent);
    }

    @Override
    protected void onPause() {
        super.onPause();
        navigateToLogin = true;
    }
}
...