Как я могу запланировать особый поток в Blackberry

Если Ваша песня / двоичный файл подавался апачем, Вы можете легко grep access_log для обнаружения количества загрузок. Простой post-logrotate сценарий может grep журналы и поддерживать Вашу статистику количества в дб. Это имеет преимущество производительности, не находясь в Вашем живом пути выполнения кода запроса. Выполнение некритических вещей как статистика офлайн является хорошей идеей масштабировать Ваш веб-сайт к большому количеству пользователей.

5
задан Maksym Gontar 30 October 2009 в 07:21
поделиться

4 ответа

Я бы использовал TimerTask :

public class MyScreen extends MainScreen {
    private Timer mTimer;
    public MyScreen() {        
        mTimer = new Timer();
        //start after 1 second, repeat every 5 second
        mTimer.schedule(mTimerTask, 0, 5000);
    }

    TimerTask mTimerTask = new TimerTask() {
        public void run() {
            // some processing here
        }
    };
}

см. Скрытые жемчужины API BlackBerry (часть вторая)

6
ответ дан 14 December 2019 в 01:10
поделиться

используйте UiApplication.getUiApplication (). InvokeLater () он принимает параметры задержки и повторения и будет выполнять именно то, что вам нужно.

РЕДАКТИРОВАТЬ

Я знаю, что этот пост старый, но это, безусловно, лучший вариант для планирования повторяющихся событий, и я хотел бы добавить это, чтобы остановить запланированное событие требуется следующее:

//Start repeating "runnable" thread every 10 seconds and save the event ID
int eventId = UiApplication.getUiApplication().invokeLater(runnable, 10000, true);

//Cancel the repetition by the saved ID
UiApplication.getUiApplication().cancelInvokeLater(eventId);
2
ответ дан 14 December 2019 в 01:10
поделиться

Assuming you want it to run a thread on device startup: Create a second project and list it as an alternate entry point. In your UiApplication or Application main(), check the argument passed to the project. Do your periodic stuff there via Thread.sleep and don't call enterEventDispatcher.

search for "autostart": http://docs.blackberry.com/en/developers/deliverables/1076/development.pdf

Или, если вы хотите что-то сделать после того, как пользователь "запустит" это, подумайте о создании нового потока для сделай свой выбор времени. Переопределите onClose () вашего экрана и используйте Application.getActivation (). Deactivate (), чтобы переместить экран в фоновый режим.

Или есть другие способы сделать что-то подобное, например invokeLater и т. Д. Может быть, слушатели событий могут делать то, что вам нужно, но вы не предоставили много деталей.

1
ответ дан 14 December 2019 в 01:10
поделиться

Пока приложение работает - просто создайте поток и после каждого бита работы вызовите Thread.sleep столько, сколько вам нужно, чтобы он оставался бездействующим.

Если вам нужно разбудить в определенное время, а не просто спать в определенное время, то вы можете сделать что-то вроде следующего:

Date wakeUpAt = ...; // Get this however
Date now = new Date();
long millisToSleepFor = wakeUpAt.getTime() - now.getTime();
Thread.sleep(millisToSleepFor);
0
ответ дан 14 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: