Mam aktywność A, która słucha niektórych wiadomości internetowych, gdy otrzyma pewną wiadomość, będzie przejść do aktywności B przez startActivity().

Rzeczy działa dobrze, gdy aplikacja jest na pierwszym planie, ale kiedy jest na tle, startActivity() spowoduje, że aplikacja automatycznie przynosi się do przodu.

Jak mogę "szliennie" stałaktywność () w tle bez przynoszenia aplikacji na pierwsze planie?

3
mike 4 czerwiec 2018, 07:17

4 odpowiedzi

Najlepsza odpowiedź

Nie możesz. Co możesz zrobić, jest ustawić flagę, a następnie w Onresume Call Startactivity dla następnej aktywności, jeśli flaga jest ustawiona.

Lub używać fragmentów zamiast działań.

3
Gabe Sechan 4 czerwiec 2018, 04:25

Nie można tego bezpośrednio zrobić, jednak spróbuj spróbować czegoś takiego jak minimalizowanie aplikacji, gdy tylko działanie się rozpocznie.

W metodzie onCreate Twojej aktywności użyj następującego oświadczenia:

YourActivity.this.moveTaskToBack(true);

Oczywiście będziesz musiał użyć niektórych flag i dodatków, aby zapobiec jej zminimalizowaniu w innych przypadkach.

1
Nabin Bhandari 4 czerwiec 2018, 04:29

Jak powiedział @Gabe, możesz to zrobić, ustawiając flagę, taką samą jak otworzyć login lub główną aktywność, sprawdzając obiekt użytkownika w SharedPreference.

if(SharedPreference Message count > 0){
            startActivity(new Intent(this, YourChattingActivity.class));
        }

Również będziesz musiał ustawić liczbę wiadomości w SharedPreference.

1
Khemraj 4 czerwiec 2018, 04:37

Korzystanie z poniższego linku możesz osiągnąć to, co chcesz: Oto Rozwiązanie do sprawdzania stanu aktywności i uchwytu zgodnie z tym.

1
Mahesh Keshvala 4 czerwiec 2018, 04:54