Как я могу заставить действие перейти к фону, не называя finish()
метод и возврат к Родительскому действию, которое запустило это? Я попробовал так много, но я не мог найти решение. Таким образом, если бы Вы, которым могли бы помочь парни, я был бы очень благодарен.
Попробуйте:
Intent toNextActivity = new Intent(CurrentActivity.this,
NextActivity.class);
CurrentActivity.startActivity(toNextActivity);
Если вы будете использовать этот способ, будет вызываться метод OnPause () из точечной активности, и если у вас есть статическая переменная (например, объект MediaPlayer) в текущей актективности, она будет продолжать Существуют (или играйте, если он играет) ..
Я использую это в моем приложении, но я нашел лучший способ сделать это с услугами.
Надеюсь, это поможет вам!
Если у вас есть данные, которые вы хотите кэшировать / хранить / обрабатывать в фоновом режиме, вы можете использовать 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 предназначен для ситуаций, когда вам нужно обработать что-то в новом потоке, но иметь возможность взаимодействовать с процессом пользовательского интерфейса.