其他分享
首页 > 其他分享> > 后延迟方法 – Android

后延迟方法 – Android

作者:互联网

我使用了publishDelayed方法来刷新我的Activity,这很好用.但问题是,即使按下后退按钮后延迟方法,也可以回调上一个活动.

//延迟刷新活动后30000毫秒的处理程序

mHandler.postDelayed(new Runnable() {
public void run() {
               dostuff();

        }
            }, 30000);
    }

protected void dostuff() {
Intent intent = getIntent();
finish();startActivity(intent);
Toast.makeText(getApplicationContext(), "refreshed", Toast.LENGTH_LONG).show();
}

public void onBackPressed() {
        super.onBackPressed();
        finish();
        mHandler.removeCallbacks(null);
        }

protected void onStop() {
            mHandler.removeCallbacks(null);
        super.onStop();
    }

解决方法:

您可以使用您正在调用postDelayed()方法的处理程序的removeCallbacks(runnable)方法.例如,如果您使用:

mHandler.postDelayed(mRunnable, mTime)

刷新活动,然后使用

mHandler.removeCallbacks(mRunnable)

在活动的onPause()方法中.

标签:postdelayed,android,android-intent,android-activity
来源: https://codeday.me/bug/20191009/1876910.html