使用处理程序postdelay定期运行代码

时间:2016-05-16 16:45:58

标签: android handler

我想每隔60秒定期记录一条消息。我想我应该使用postdelayed方法处理程序。但是,在其他问题中提出的方法对我没有用。

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dbHandler=new DatabaseHandler(this);
    data = dbHandler.fetchAllItemsIn(5);
   run= new Runnable() {
        @Override
        public void run() {
            String items="";
            for(int i=0;i<data.size();i++){
                items+=data.get(i).getItemName()+"\n";
            }
            Log.d("items:",items);
        }
    };

}
public void LogDatabase(View view){
  Handler hand=new Handler();

  hand.postDelayed(run,60);
}

2 个答案:

答案 0 :(得分:1)

它不适合您,因为您只运行一次Runnable

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dbHandler=new DatabaseHandler(this);
    data = dbHandler.fetchAllItemsIn(5);
    hand = new Handler();

    run= new Runnable() {
        @Override
        public void run() {
            String items="";
            for(int i=0;i<data.size();i++){
                items+=data.get(i).getItemName()+"\n";
            }
            Log.d("items:",items);
            hand.postDelayed(run,60);
        }
    };

}
public void LogDatabase(View view){
  hand.postDelayed(run,60);
}

答案 1 :(得分:0)

如果你不只想要一次执行 - 你需要再次在runnable的末尾调用postDelayed