Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 5
1

Запуск активити из сервиса

06.12.2019, 11:27. Показов 1483. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Работает сервис без активити и при определенных условиях при срабатывании надо показать не главную активити.
Пробовал Intent не работает пробовал с потоками тоже ошибка. А в область уведомлений, главной активити не видно да я и не хочу, хочу на большой экран результат

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
public class DateTask extends Service {
 
   
    private boolean STOP = false;
    Integer y = 100;
    Message msg;
    private MediaPlayer mPlayer;
    NotificationManager nm;
 
    @Override
    public void onCreate() {
        super.onCreate();
        Toast.makeText(this, "Служба создана", Toast.LENGTH_SHORT).show();
        mPlayer = MediaPlayer.create(this, R.raw.flower_romashka);
        mPlayer.setLooping(false);
        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
    }
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "onStartCommand");
             timer.scheduleAtFixedRate(new MyTimerTask(), 0, 5000);
        return START_STICKY;
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        STOP = true;
        Log.d(LOG_TAG, "onDestroy");
        mPlayer.stop();
    }
 
    @Override
    public IBinder onBind(Intent intent) {
 
        return null;
    }
 
    public class MyTimerTask extends TimerTask {
        public void run() {
                        compare();
        }
    }
 
    Timer timer = new Timer();
 
    void compare() {
        DBHelper dbHelpers;
        dbHelpers = new DBHelper(this);
        SQLiteDatabase dbs = dbHelpers.getWritableDatabase();
 
        Cursor c = dbs.query("mytable", null, null, null, null, null, null);
 
        int idColIndex = c.getColumnIndex("id");
        int denColIndex = c.getColumnIndex("den");
        int mesColIndex = c.getColumnIndex("mes");
        int godColIndex = c.getColumnIndex("god");
        int hourColIndex = c.getColumnIndex("hour");
        int minutColIndex = c.getColumnIndex("minut");
        int taskColIndex = c.getColumnIndex("task");
        int flagColIndex = c.getColumnIndex("flag");
 
        if (c.moveToFirst()) {
            String sdate = null;
            String datet = null;
            Integer a = 1;
            do {
                Integer flag = Integer.parseInt(c.getString(flagColIndex));
                              if (flag == 0) {
                    sdate = new SimpleDateFormat("dd.MM.yyyy HH:mm").format(new Date());
                    datet = c.getString(denColIndex) + "." + c.getString(mesColIndex) + "."
                            + c.getString(godColIndex) + " " + c.getString(hourColIndex) + ":" + c.getString(minutColIndex);
                }
                if (flag == 1) {
                    sdate = new SimpleDateFormat("HH:mm").format(new Date());
                    datet = c.getString(hourColIndex) + ":" + c.getString(minutColIndex);
                }
                if (flag == 2) {
                    sdate = new SimpleDateFormat("dd HH:mm").format(new Date());
                    datet = c.getString(denColIndex) + " " + c.getString(hourColIndex) + ":" + c.getString(minutColIndex);
                }
                if (flag == 3) {
                    sdate = new SimpleDateFormat("dd.MM HH:mm").format(new Date());
                    datet = c.getString(denColIndex) + "." + c.getString(mesColIndex) + " "
                            + c.getString(hourColIndex) + ":" + c.getString(minutColIndex);
                }
                if (!y.equals(Integer.parseInt(c.getString(idColIndex))))
                    if (sdate.compareTo(datet) == 0) {
                        mPlayer.start();
                      
                     //   ***** Где то здесь должно сработать и надо показать ативити с результатом *****
                        y = Integer.parseInt(c.getString(idColIndex));
                    }
            } while (c.moveToNext());
        }
    }
  }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2019, 11:27
Ответы с готовыми решениями:

Передача комманд с сервиса на активити
Доброго времени суток! Есть сервис и активити, сервис будет работать постоянно (запускаться при...

Как передать целочисленную переменную и картинку из сервиса в активити?
Как передать целочисленную переменную и картинку из сервиса в активити?

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

Запуск активити
Создаю приложение-справку, при запуске выходит активити (MainActivity), которое содержит 2 кнопки...

2
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
06.12.2019, 12:44 2
Где код, который не работает, какая ошибка? Без форматирования смотреть невозможно. В любом случае, нужно в главном потоке стартовать активити.
0
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 5
06.12.2019, 13:56  [ТС] 3
Тема закрыта
сделал чрез <intent-filter>

Java
1
2
3
4
5
//   Где то здесь должно сработать
 
                        intent = new Intent("ru.startandroid.intent.action.showtask");
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);
0
06.12.2019, 13:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2019, 13:56
Помогаю со студенческими работами здесь

Странный многократный запуск активити
Пишу одно приложение, в котором сохраняю введенное в edittext имя. Если приложение запускают не...

Запуск BroadcastReceiver без активити
Имеется приложение, включающее в себя единственный класс: public class MyReceiver extends...

Не работает If и запуск нового активити
Есть загрузка данных с базы MySql в переменные, есть 2 EditText в которые вводятся текстовые...

Запуск анимации при старте активити
Есть покадровая анимация, которая выставлена фоном одного из элементов интерфейса. прописана как...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru