Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10

Как правильно сделать событие в таймере Java под Android

25.05.2016, 19:03. Показов 2707. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема причем срочная,пишу диплом тема:программный таймер управления телевизором.
Выбрал ось Андроид пытаюсь написать адекватный таймер выключения, пересмотрел кучу тем и видео, нигде не могу найти как выбрать адекватный способ отключения.Подскажите новичку в Jave
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2016, 19:03
Ответы с готовыми решениями:

Хочу сделать игру под Android на движке Unity. Как сделать регистрацию пользователей?
Помогите разобраться! Хочу сделать игру под Андроид на движке Unity. Как сделать регистрацию пользователей? Где хранить БД? Пожалуйста...

Как правильно сделать задержку, ожидать событие в программе?
Вот, к примеру, алгоритм: Запуск программы Подготовка данных Запуск стороннего приложения (ждем запуска и сообщения о...

Можно ли написать веб сервер на Java для клиента на Android, имея под рукой только телефон на Android?
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее- какой программой компилировать код, какой лучше выбрать...

21
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
25.05.2016, 19:05
ну показывай что есть
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
25.05.2016, 19:08  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package javaapplication24;
 
import java.util.Timer;
import java.util.TimerTask;
 
public class JavaApplication24 {
 
    public static void main(String[] args) {
        final Timer time = new Timer();
 
        time.schedule(new TimerTask() {
            int i = 0;
            @Override
            public void run() { // МЕТОД RUN В КОТОРОМ ДОЛЖНО БЫТЬ ОТКЛЮЧЕНИЕ СИСТЕМЫ
                if(i>=2){
                    System.out.println("Таймер завершил свою работу");
                    time.cancel();
                    return;
                }
                System.out.println("Прошло 4 секунды");
                i = i + 1;
            }
        }, 4000, 4000); //(4000 - ПОДОЖДАТЬ ПЕРЕД НАЧАЛОМ В МИЛИСЕК, ПОВТОРЯТСЯ 4 СЕКУНДЫ (1 СЕК = 1000 МИЛИСЕК))
    }
 
}
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
25.05.2016, 19:12
а что не так с этим кодом?
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
25.05.2016, 19:14  [ТС]
С ним все в порядке,но вместо вывода текста хотелось бы чтобы предполагаемый телевизор выключался.
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
26.05.2016, 08:57
Цитата Сообщение от Romava Посмотреть сообщение
предполагаемый телевизор выключался.
ну так элементарно же:
Java
1
TV.getInstance().turnOff();
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
26.05.2016, 11:17
Romava, что бы его выключить нужно иметь к нему доступ. java-приложение у него на борту? каков API? как надо воздействовать на телек?
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:04  [ТС]
vxg,java-приложение пытаюсь написать сам с использованием подсказок,т.к. начал учить его буквально неделю назад,api у него 22 ,версия 5 минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя....
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
26.05.2016, 14:12
Цитата Сообщение от Romava Посмотреть сообщение
минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя
то есть это приложение для работы на телевизоре который работает под Android? там разве можно запускать вот такие-вот консоли? это же Android... там приложение по другому оформляется
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:39  [ТС]
да,понимаю,просто сам код чисто javaвоский,но его же можно в принципе заточить под андроид
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
26.05.2016, 14:50
Romava, супер быстрое решение-обманка - после истечения времени показать пользователю черный квадрат (визуально экран как будто выключен). остального вряд ли можно добиться. вогнать устройство в блокировку экрана вроде как нельзя. потушить экран или загнать его яркость в ноль наверное можно попытаться но... выключить устройство - только на рут прошивке или если ваше приложение подписано как прошивка вроде бы
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 20:24  [ТС]
vxg, Я уже смирился с этим,сейчас думаю какую еще функцию будет полезно реализовать на телевизоре,например выключение звука...
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
27.05.2016, 07:33
Romava, а чего так экстремально? Почему к примеру не что-то более естественное. Переключение каналов к примеру.
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 10:12  [ТС]
переключение по средствам андроид приложения,мне кажется тоже экстрим
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
27.05.2016, 10:24
Romava, просто это же телевизор. логически напрашивается мысль что люди могут захотеть сделать для него свою переключалку программ. как впрочем и выключалку или планировщик включения. может даже именно для телевизора как то можно выключить или включить потому что эти задачи для телевизора очень даже актуальны.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
27.05.2016, 10:26
мне кажется ТСу просто делать нечего, тема ниочем вообще, то надо то ненадо, теперь смирился
код из чистой джавы с main методом, какой-то телевизор непонятный, то ли реальный то ли класс надо сделать
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
27.05.2016, 10:35
Паблито, мне кажется (хотя это немного интересное слово на форуме программирования) что ТС хочет сделать приложение работающее на телевизоре - в андроид можно сделать такое. я думаю для телевизора должны быть какие-то его системные интересные штуковины. однако ничего не мешает сделать приложение просто как приложение не обращая внимание на то что это телевизор.
Romava, вы пробовали ставить на него обычное приложение из маркета?
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 13:44  [ТС]
Извините что трачу ваше драгоценное время,но как я уже отмечал,делаю диплом и тема моя андроид приложение таймер,выбрал тему не я, а руководитель перепутав меня с другим студентом,теперь я загнан в рамки,так что за неделю я сперва подучил основы java,а теперь разбираюсь в андроид студио. Понял что под тв приложения там делать очень тяжело,тем более с моим багажом знаний,так что что уж там врать пытаюсь найти что-то рабочее на просторах интернета,нашел рабочий Javaвовский код,в принципе правильный,но без привязки к xml, :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.widget.Toast;
 
publicclass AlarmManagerBroadcastReceiverextends BroadcastReceiver{
 
finalpublic static String ONE_TIME="onetime";
 
@Override
public void onReceive(Context context, Intent intent){
PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl= pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"YOUR TAG");
//Осуществляем блокировку
wl.acquire();
 
//Здесь можно делать обработку.
Bundle extras= intent.getExtras();
StringBuilder msgStr=new StringBuilder();
 
if(extras!=null&& extras.getBoolean(ONE_TIME, Boolean.FALSE)){
//проверяем параметр ONE_TIME, если это одиночный будильник,
//выводим соответствующее сообщение.
msgStr.append("Одноразовый будильник: ");
}
Format formatter=new SimpleDateFormat("hh:mm:ss a");
msgStr.append(formatter.format(newDate()));
 
Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show();
 
//Разблокируем поток.
wl.release();
}
 
public void SetAlarm(Context context)
{
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
intent.putExtra(ONE_TIME, Boolean.FALSE);//Задаем параметр интента
PendingIntentpi= PendingIntent.getBroadcast(context,0, intent,0);
//Устанавливаем интервал срабатывания в 5 секунд.
am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000*5,pi);
}
 
public void CancelAlarm(Context context)
{
Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
PendingIntent sender= PendingIntent.getBroadcast(context,0, intent,0);
AlarmManager alarmManager=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);//Отменяем будильник, связанный с интентом данного класса
}
 
public void setOnetimeTimer(Context context){
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
intent.putExtra(ONE_TIME, Boolean.TRUE);//Задаем параметр интента
PendingIntentpi= PendingIntent.getBroadcast(context,0, intent,0);
am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pi);
}
}
Добавлено через 3 минуты
Хочу сказать что до сдачи на проверку у меня остались выходные,так что кроме как сказать помогите,ничего не могу... я пересмотрел уже кучи уроков,пока еще не могу всего понять.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
27.05.2016, 13:45
Romava, у вас стоит студия? вы проект пробовали собирать и запускать в эмуляторе или прямо на телефоне?
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 13:49  [ТС]
в эмуляторе пробовал,но что толку если нет толкового xml

Добавлено через 2 минуты
Вот так вот выглядит java класс в студио
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
 
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class AlarmManagerBroadcastReceiver extends BroadcastReceiver {
 
    final public static String ONE_TIME = "onetime";
 
    @Override
    public void onReceive(Context context, Intent intent) {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
//Осуществляем блокировку
        wl.acquire();
 
        Bundle extras = intent.getExtras();
        StringBuilder msgStr = new StringBuilder();
 
        if (extras != null)  extras.getBoolean(ONE_TIME, Boolean.FALSE);{
//проверяем параметр ONE_TIME, если это одиночный будильник,
//выводим соответствующее сообщение.
            msgStr.append("Одноразовый будильник: ");
        }
        Format formatter = new SimpleDateFormat("hh:mm:ss a");
        msgStr.append(formatter.format(new Date()));
 
        Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show();
 
//Разблокируем поток.
        wl.release();
    }
    public void SetAlarm(Context context)
    {
        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
        intent.putExtra(ONE_TIME, Boolean.FALSE);//Задаем параметр интента
        PendingIntent pi = PendingIntent.getBroadcast(context,0, intent,0);
//Устанавливаем интервал срабатывания в 5 секунд.
        am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000*5,pi);
    }
 
    public void CancelAlarm(Context context)
    {
        Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
        PendingIntent sender= PendingIntent.getBroadcast(context,0, intent,0);
        AlarmManager alarmManager=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        alarmManager.cancel(sender);//Отменяем будильник, связанный с интентом данного класса
    }
    public void setOnetimeTimer(Context context){
        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
        intent.putExtra(ONE_TIME, Boolean.TRUE);//Задаем параметр интента
        PendingIntent pi = PendingIntent.getBroadcast(context,0, intent,0);
        am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pi);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2016, 13:49
Помогаю со студенческими работами здесь

Событие установки приложения Android Java
Здравствуйте, как можно отследить что приложения было установлено? допустим при установке надо слать HTTP запрос. Где и что нужно...

Как сделать маскировку под Android?
Есть мобила Nokia N76, у меня там установлена Агент 1.77 для symbian и для java версия 3.9. На версий 1.77 там в настройках есть маскировка...

Android java(eclipse) mysql как сделать коннект?
Добрый день, форумчане. Помогите, пожалуйста, с вопросом. 2-й день пытаюсь добится результата. Android java(eclipse) mysql как сделать...

Как сделать 1 прыжок, а то получается как джетпак? (разработка под Android)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Hero : MonoBehaviour { ...

Как Сделать Правильно Logout Клиента(под Web)
Добрый день уважаемым гуру! Подскажите как правильно прописать команду Logout для закрытия сессии клиента, который авторизировался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru