android - 延迟后方法 - Android

标签 android android-intent android-activity postdelayed

我使用postedDelayed方法来刷新我的Activity,效果很好。但问题是,即使我按下“后退”按钮,postdelayed 方法也会回调上一个 Activity 。

//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();
    }

最佳答案

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

mHandler.postDelayed(mRunnable, mTime)

刷新 Activity ,然后使用

mHandler.removeCallbacks(mRunnable)

在 Activity 的 onPause() 方法中。

关于android - 延迟后方法 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050807/

相关文章:

android - 向上导航未启动父 Activity

java - Android - 如何以编程方式创建 FAB?

android - 整个应用程序中使用的自定义字体

android - 从运行启动的广播接收器使用 alertDialog 启动 Activity

android - 如何显示不同 Activity 的警报

Android-通过将已经运行的进程发送到后台来从服务启动 Activity

android - TouchableOpacity 在绝对定位的 View 中不起作用

java - 如何使用 SearchView、Retrofit 和 RxJava (RxBindings) 实现搜索功能?

android - Android 标签分发器是同步处理还是异步处理 NDEF 记录?

java - Android 应用程序在 TextView 中启动 Intent 并使用 setText() 后崩溃