定期为 运行 代码使用处理程序后延迟
Using handler postdelay for running a code periodically
我想每 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);
}
如果您不仅想要单次执行 - 您需要在 runnable 结束时再次调用 postDelayed
它对你不起作用,因为你 运行 你的 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);
}
我想每 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);
}
如果您不仅想要单次执行 - 您需要在 runnable 结束时再次调用 postDelayed
它对你不起作用,因为你 运行 你的 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);
}