我想编写一个Android应用程序,打开时会在20秒后调用一个方法,然后每隔10秒调用一次方法。
有关如何进行的任何想法?
答案 0 :(得分:21)
你可以用一个A B C D
1 1 5 $C$10
2 4 $C$10
3 3 6 $C$10
4 4 1 $C$10
5 5 9 $C$10
6 6 3 $C$10
7 75 $C$10
8 12 $C$10
9 9 55 $C$10
10 90 $C$10
11 $C$10
12 12 $C$10
这样做:
Handler
要每10秒重复一次,您可以在同一方法中添加以下行
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 20 seconds
}
}, 20000); //the time is in miliseconds
像这样:
handler.postDelayed(this, 10000);
答案 1 :(得分:1)
您可以使用this,对于该实施,您可以像
那样使用 public class ServiceController : Controller
{
[InvitationModeAttribute]
public ActionResult Confirm()
{
return RedirectToAction("Index", "Home");
}
}
答案 2 :(得分:1)
您可以使用闹钟管理器如果您想要工作,即使应用程序处于非活动状态(关闭)
它一直运行直到你不要阻止它。
这里是完整的例子
http://javatechig.com/android/repeat-alarm-example-in-android
答案 3 :(得分:1)
声明一个处理程序对象:
Handler myHandler = new Handler();
myHandler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 20 seconds
//call the method which is schedule to call after 20 sec
}
}, 200000); //the time is in miliseconds
- 10秒按上述方式执行操作,然后按循环重复。
希望这会有所帮助......谢谢
答案 4 :(得分:1)
CountDownTimer cdt;
cdt = new CountDownTimer(timeint * 60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
Log.i(TAG, millisUntilFinished " millis left");
}
@Override
public void onFinish() {
Log.i(TAG, "Timer finished");
}
};
cdt.start();
答案 5 :(得分:1)
请检查以下代码。
atexit
希望此代码能为您提供帮助。
答案 6 :(得分:0)
使用计时器类
private CountDownTimer countDownTimer;
private void startTimer(final Context context) {
if (countDownTimer != null) {
countDownTimer.cancel();
countDownTimer = null;
}
countDownTimer = new CountDownTimer(20 * 1000, 1 * 1000) {
public void onTick(long millisUntilFinished) {
//
}
public void onFinish() {
yourMethod();
startTimer(context);
}
}
}.start();
}
答案 7 :(得分:0)
您需要使用自定义处理程序来完成这项工作。以下是您需要的示例:
public class Main extends Activity {
private TextView txtStatus;
private RefreshHandler mRedrawHandler = new RefreshHandler();
class RefreshHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Main.this.updateUI();
}
public void sleep(long delayMillis) {
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
};
private void updateUI(){
int currentInt = Integer.parseInt((String) txtStatus.getText()) + 10;
if(currentInt <= 100){
mRedrawHandler.sleep(10000);
txtStatus.setText(String.valueOf(currentInt));
}
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
this.txtStatus = (TextView) this.findViewById(R.id.txtStatus);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
updateUI();
}
}, 20000);
}
}