Handler Runnable甚至在活动退出后运行

时间:2018-05-04 18:15:36

标签: android runnable android-handler

我每5秒将textview中的文本用户类型更新为数据库。 处理程序从textview收集数据并将其保存到数据库。 但是,即使按下后退按钮并返回MainActivity,更新代码也会运行。

退出活动后如何停止运行代码。

streamingBodyFrom :: Stream (Of ByteString) (ResourceT IO) () 
                  -> Int 
                  -> StreamingBody
streamingBodyFrom stream breakSize writeBuilder flush =
    let writer a = liftIO (writeBuilder (byteString a))
        flusher = liftIO flush
        broken = breaks' breakSize stream
     in runResourceT . S.mapM_ writer . S.intercalates flusher $ broken

3 个答案:

答案 0 :(得分:3)

您需要在销毁活动时释放处理程序资源。

@override
protected void onDestroy() {
    super.onDestroy();
    h.removeCallbacksAndMessages(null);
    h = null;
} 

答案 1 :(得分:2)

您可以删除onPause中的处理程序

Runnable  runnable =new Runnable() {
      @Override public void run() {

      }
    };
    new Handler().removeCallbacks(runnable);

答案 2 :(得分:2)

在方法之外创建runnable,如:

Runnable  runnable =new Runnable() {
  @Override public void run() {

  }
};

在您的活动的onPause来电:

h.removeCallback(runnable);