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

时间:2015-08-22 15:49:48

标签: android

我试图在特定时间之后重新启动相同的Activity,并在单击按钮后2分钟后再说。但是,它会关闭活动,但是不会在指定的时间内启动,这里是代码:

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

2 个答案:

答案 0 :(得分:1)

您不能以这种方式执行 - 一旦您的Activity完成,所有UI线程都会停止。

如果您希望在关闭活动时运行某些功能,则需要创建Service

您还应该注意postDelayed() in a Service中描述的使用Runnable的问题。

答案 1 :(得分:0)

我使用:

修复了它
public void snoozeup(View view)
{

    Handler handler = new Handler();
    Runnable x=new Runnable() {
        @Override
        public void run()
        {
            startActivity(new Intent(Time_Date.this, Time_Date.class));
        }
    };
    handler.postDelayed(x, 6000);

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



    finish();
}