Я установил таймер на AccountActivity.class
, чтобы гарантировать, что пользователь не нажимает кнопку «домой», если не начнет обратный отсчет, чтобы выйти из системы, или если пользователь заблокирует его экран.Таймер не останавливается на старой активности
Но теперь я столкнулся с проблемой из-за метода . Когда мой пользователь нажимает кнопку, которая вызывает метод getaccounttask()
, и он перенаправляет моего пользователя на AccountInformationActivity.class
, также активируется метод , и таймер начинает обратный отсчет.
Есть ли какое-либо решение, чтобы предотвратить метод от отсчета или таймер, который будет отменен на моем AccountInformationActivity.class
?
Я попытался сделать отмена таймера до того, как начнется мое намерение, но все еще не работает.
Я пробовал использовать обработчик, но столкнулся с той же проблемой, я все еще пытаюсь понять, как работает Android, поэтому ваша помощь или решение глубоко оценены.
public class AccountActivity extends AppCompatActivity {
private Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account);
}
private class getaccounttask extends AsyncTask<String, Void, String>
{
@Override
protected String doInBackground(String... urlaccount)
{
StringBuilder result = new StringBuilder();
try
{
//My Codes
}
catch (Exception e)
{
e.printStackTrace();
}
return result.toString();
}
@Override
protected void onPostExecute(String result)
{
Intent intent = new Intent();
intent.setClass(getApplicationContext(), AccountInformationActivity.class);
startActivity(intent);
}
}
@Override
protected void onPause() {
super.onPause();
timer = new Timer();
Log.i("Main", "Invoking logout timer");
LogOutTimerTask logoutTimeTask = new LogOutTimerTask();
timer.schedule(logoutTimeTask, 300000); //auto logout in 5 minutes
}
@Override
protected void onResume() {
super.onResume();
if (timer != null) {
timer.cancel();
Log.i("Main", "cancel timer");
timer = null;
}
}
private class LogOutTimerTask extends TimerTask {
@Override
public void run() {
//redirect user to login screen
Intent i = new Intent(AccountActivity.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
}
}
}
Привет, Я тоже пытался обработчик, но я застрял в той же проблеме. Для части отслеживания shouldNavigate я все еще не совсем уверен, поскольку я все еще новичок в Android и Java, если бы вы могли предоставить некоторые коды, это будет потрясающе и поможет мне понять – iOSAndroid
, пожалуйста, проверьте правильность, и исправьте исправить в соответствии с ваша потребность. –
OMG..Наконец это сработало! Большое спасибо! Я застрял в этом вопросе как недели! Еще раз спасибо за все! – iOSAndroid