android - 处理程序在指定时间后不运行

标签 android

我试图在特定时间后重新启动同一个 Activity ,比如在单击按钮后 2 分钟后。然而,它确实关闭了 Activity ,但是没有在指定的时间启动,这里是代码:

public void snoozeup(View view)
{

    Handler mHandler = new Handler();
    mHandler.postDelayed(new Runnable() {

        @Override
        public void run()
        {
            //start your activity here
            startActivity(new Intent(Time_Date.this, Time_Date.class));
        }

    }, a);      //where a is integer with value 120000

    mp.stop();
    mp.release();
    voicePlayer.stop();
    voicePlayer.release();
    songPlayer.stop();
    songPlayer.release();

    this.finish();
}

最佳答案

您不能那样做 - 一旦您的 Activity 完成,所有 UI 线程都会停止。您的 Runnable 永远不会被调用。

如果您希望某些功能在您的 Activity 关闭时运行,您需要创建一个 Service .

您还应该注意使用 postDelayed 的问题,如 postDelayed() in a Service 中所述.

关于android - 处理程序在指定时间后不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157975/

相关文章:

android - 视频分辨率存储在android中的哪里?

android - 需要为 iOS 和 Android 实现即时消息?

android - 如何从单个字符串中获取多个匹配的模式

android - 如何在空白 Android 应用程序中使用 MVVMCross

android - 尝试使用 IntellIJ 运行应用程序时未指定 APK 路径

android - 如何在所有Android版本上显示支持库的ActionBar&Toolbar的影子?

java - 在父类(super class)构造函数中将 'this' 转换为子类

java - 如何使用 webview 制作标签以从网址加载?

java - 图像预览 - Android

java - 如何在不实例化外部类的情况下实例化内部类