Как я могу поставить две разные темы на один сервис? - PullRequest
1 голос
/ 02 июня 2011

Может ли кто-нибудь дать мне пример кода, который показывает, как использовать два разных потока в одном сервисе? я не нашел способ сделать это в Google, тогда мне нужен пример кода ...

один ожидает 5 секунд, а другой - 60 секунд, с другим кодом

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

Вы можете использовать ScheduledExecutorService для создания и запуска запланированных событий, а затем настроить их следующим образом:

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);

final Runnable r1 = new Runnable() {
    @Override
    public void run() {
        Log.i("TestStuff", "r1 ran at " + new Date());
    }
};

final Runnable r2 = new Runnable() {
    @Override
    public void run() {
        Log.i("TestStuff", "r2 ran " + new Date());
    }
};

scheduler.schedule(r1, 5, TimeUnit.SECONDS);
scheduler.schedule(r2, 60, TimeUnit.SECONDS);

Обратите внимание, что потоки ничего не могут сделать в интерфейсено вы упомянули «единый сервис», поэтому я предполагаю, что вы все равно делаете все, что не связано с пользовательским интерфейсом.

1 голос
/ 02 июня 2011
Thread t5 = new Thread(Runnable_that_waits_5_seconds);
Thread t60 = new Thread(Runnable_that_waits_60_seconds);
t5.start();
t60;start();

Теперь вам просто нужно определить ваши runnables.

Кроме того, вы должны дать вашим runnables способ обнаруживать, что они были прерваны и завершаться, если они это делают, и прерывать каждый поток в вашем.код очистки сервиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...