Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
794 views
in Technique[技术] by (71.8m points)

how to stop Handler in Android?

In My Application my handler doesn't stop. How can I stop the handler?
It continues to start after closing the activity. What can i do?

the code is :

 handler = new Handler()
        {
            @Override
            public void handleMessage(Message msg) 
            {
                // TODO Auto-generated method stub
                super.handleMessage(msg);
                if(i<max)
                {
                    evnetChangedisplay(i);
                    i++;
                        handler.sendEmptyMessageDelayed(0, 5000);
                    }
                else
                    {
                        i = 0;
                        handler.sendEmptyMessageDelayed(0,0000);
                    }
                }
        };
handler.sendEmptyMessageDelayed(0,000);
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It sounds like the activity finishes its lifecycle before the Handler executes the code. You can manage a handler.post(runnable) by creating an instance member for the handler and runnable, then managing the handler in the Activity Lifecycle methods.

private Handler myHandler;
private Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        //Do Something
    }
};

Start the runnable with handler.post.

protected void onStart() {
    super.onStart();
    myHandler = new Handler();
    myHandler.post(myRunnable);

}

If the runnable hasn't executed by the time onStop is called, we don't want to run it. Remove the callback in the onStop method:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...