Отправка Действия к фону без окончания

Как я могу заставить действие перейти к фону, не называя finish() метод и возврат к Родительскому действию, которое запустило это? Я попробовал так много, но я не мог найти решение. Таким образом, если бы Вы, которым могли бы помочь парни, я был бы очень благодарен.

16
задан Willian Soares 27 April 2017 в 20:04
поделиться

2 ответа

Попробуйте:

 Intent toNextActivity = new Intent(CurrentActivity.this,
                                     NextActivity.class);
 CurrentActivity.startActivity(toNextActivity);

Если вы будете использовать этот способ, будет вызываться метод OnPause () из точечной активности, и если у вас есть статическая переменная (например, объект MediaPlayer) в текущей актективности, она будет продолжать Существуют (или играйте, если он играет) ..

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

Надеюсь, это поможет вам!

0
ответ дан 30 November 2019 в 16:14
поделиться

Если у вас есть данные, которые вы хотите кэшировать / хранить / обрабатывать в фоновом режиме, вы можете использовать AsyncTask или Thread .

Когда вы будете готовы кэшировать / перейти к родительскому объекту, вы должны сделать что-то вроде следующего в одном из ваших дочерних методов Activity (при условии, что вы запустили дочерний элемент с помощью startActivityForResult ())

Подход потока:

Thread t1 = new Thread(new Runnable() {

        @Override
        public void run() {
            // PUT YOUR CACHING CODE HERE

        }
});

t1.start();

setResult( whatever );
finish();

Вы также можете используйте обработчик , если вам нужно передать что-либо обратно из вашего нового потока.

Подход AsyncTask:

new CacheDataTask().execute( data params );
set_result( whatever );
finish();

AsyncTask предназначен для ситуаций, когда вам нужно обработать что-то в новом потоке, но иметь возможность взаимодействовать с процессом пользовательского интерфейса.

2
ответ дан 30 November 2019 в 16:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: