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

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

25.05.2016, 19:03. Показов 2526. Ответов 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,014
26.05.2016, 08:57
Цитата Сообщение от Romava Посмотреть сообщение
предполагаемый телевизор выключался.
ну так элементарно же:
Java
1
TV.getInstance().turnOff();
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
26.05.2016, 14:12
Цитата Сообщение от Romava Посмотреть сообщение
минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя
то есть это приложение для работы на телевизоре который работает под Android? там разве можно запускать вот такие-вот консоли? это же Android... там приложение по другому оформляется
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:39  [ТС]
да,понимаю,просто сам код чисто javaвоский,но его же можно в принципе заточить под андроид
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
26.05.2016, 14:50
Romava, супер быстрое решение-обманка - после истечения времени показать пользователю черный квадрат (визуально экран как будто выключен). остального вряд ли можно добиться. вогнать устройство в блокировку экрана вроде как нельзя. потушить экран или загнать его яркость в ноль наверное можно попытаться но... выключить устройство - только на рут прошивке или если ваше приложение подписано как прошивка вроде бы
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 20:24  [ТС]
vxg, Я уже смирился с этим,сейчас думаю какую еще функцию будет полезно реализовать на телевизоре,например выключение звука...
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
27.05.2016, 07:33
Romava, а чего так экстремально? Почему к примеру не что-то более естественное. Переключение каналов к примеру.
0
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 10:12  [ТС]
переключение по средствам андроид приложения,мне кажется тоже экстрим
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
27.05.2016, 10:24
Romava, просто это же телевизор. логически напрашивается мысль что люди могут захотеть сделать для него свою переключалку программ. как впрочем и выключалку или планировщик включения. может даже именно для телевизора как то можно выключить или включить потому что эти задачи для телевизора очень даже актуальны.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
27.05.2016, 10:26
мне кажется ТСу просто делать нечего, тема ниочем вообще, то надо то ненадо, теперь смирился
код из чистой джавы с main методом, какой-то телевизор непонятный, то ли реальный то ли класс надо сделать
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru