Я использую Android 2.2.У меня есть приложение, которое выходит из системы (в результате чего приложение возвращается на страницу входа в систему) после определенного периода бездействия.Я использую Intent.FLAG_ACTIVITY_CLEAR_TOP
для моего Intent
.Тем не менее, я замечаю, что, когда мое приложение находится в фоновом режиме и неактивно в течение определенного периода времени, страница входа в систему внезапно всплывает, и мое приложение выходит на передний план.Я ожидаю, что страница входа останется фоновой.Этого не происходит, когда я не использую какой-либо флаг для своих намерений.Если я не использую какой-либо флажок для своего намерения, страница входа в систему спокойно запускается в фоновом режиме.Но без использования Intent.FLAG_ACTIVITY_CLEAR_TOP
я не смогу очистить свой стек истории.
Почему это происходит?Как я могу спокойно начать задание в фоновом режиме?
Ниже приведен фрагмент моего кода:
@Override //Inside a class extending AsyncTask
protected void onPostExecute(String result)
{
((GlobalApplication)getApplicationContext()).setIsLogin(false); //user is not logged in anymore
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
Ниже приведен фрагмент кода, который я сделал из предложения Ларса:
@Override //Inside a class extending AsyncTask
protected void onPostExecute(String result)
{
((GlobalApplication)getApplicationContext()).setIsLogin(false); //user is not logged in anymore
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if(((GlobalApplication)getApplicationContext()).isOnBackground())
((GlobalApplication)getApplicationContext()).setPendingIntent(intent);
else
startActivity(intent);
}
@Override //overrides android.app.Activity. inside the current Activity
protected void onResume()
{
super.onResume();
Intent pendingIntent = ((GlobalApplication)getApplicationContext()).getPendingIntent();
if(pendingIntent != null)
startActivity(pendingIntent);
}