2

有一些问题!我想在一秒钟后做一些动作,比如在 5 秒后改变单词。除了定时器的设置,我也设置了所有的东西。

我认为这对每个人来说都很容易,但我只用了 3 天就学会了 android。我应该怎么办?

4

2 回答 2

1

使用 aAlarmManager重复动作。

例子:

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 /

于 2013-07-25T10:20:09.480 回答
0

对于只执行一次的操作:

不好的一个:开始Thread使用Thread.Sleep(5000),然后确保您再次使用 Ui-Thread 并再次myActivity.runOnUiThread(Runnable)更改文本

更好的一个:使用异步任务!->

        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("");
于 2013-07-26T10:38:39.443 回答