有一些问题! 我希望在第二次之后做一些动作,比如在5秒后更改单词。除了定时器的设置外,我还设置了一切。
我认为这对每个人来说都很容易,但我只是拿起了3天的机器人。 我该怎么办?
答案 0 :(得分:1)
使用AlarmManager
重复操作。
示例:
PendingIntent pintent = PendingIntent.getService(context, 0, new Intent(context, YourIntentHere.class), 0);
AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pintent);
alarm.setRepeating(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis(), iInterval, pintent);
因此,只需将您想要重复的逻辑封装在能够实现意图(活动或服务)的内容中。
或者你可以使用带睡眠的AsyncTask,但我不建议那样。
另见:
http://developer.android.com/reference/android/app/AlarmManager.html http://www.techrepublic.com/blog/android-app-builder/use-androids-alarmmanager-to-schedule-an-event/
答案 1 :(得分:0)
对于仅执行一次的操作:
错误:启动Thread
使用Thread.Sleep(5000)
,然后确保使用myActivity.runOnUiThread(Runnable)
再次使用Ui-Thread并再次更改文本< / p>
更好的:使用asynctask! - &GT;
new AsyncTask<String, Void, Void>()
{
protected void onPreExecute()
{
// ui thread
};
@Override
protected Void doInBackground(String... params)
{
// non ui thread
// do your first action here
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
}
return null;
}
protected void onPostExecute(Void result)
{
// ui thread
// do your seconds action here
};
}.execute("");