Форум программистов, компьютерный форум CyberForum.ru

Как запустить метод в заданное время - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Сохранение ArrayList в файл и его чтение http://www.cyberforum.ru/android-dev/thread1854692.html
Привет! Имеется: List<File> mImg = new ArrayList<>(); File dir = new File(Environment.getExternalStorageDirectory(),"DIR/"); File fileArray = dir.listFiles(); mImg.addAll(Arrays.asList(fileArray)); В приложении реализован Drag & Drop, перетаскиваем и меняем местами картинки. После выхода из приложения картинки возвращаются в первоначальное положение. ...
Android Код не воспроизводит музыку из файла Создал плеер, где в preferences выбираю музыку с файла, после чего нужно её передать в главное активити, где она будет играть при нажатии клавиши. Написано вроде бы правильно, но не работает. Помогите найти ошибку, или дайте, пожалуйста какой-то пример. PrefActivity public class PrefActivity extends PreferenceActivity implements TimePickerDialog.OnTimeSetListener { final static int... http://www.cyberforum.ru/android-dev/thread1854658.html
Android Размонтирование sd-карты в планшете/телефоне
Добрый день. Подскажите пожалуйста, как программно отмонтировать карту памяти? Возможны версии и с root и без root-прав. Писать и читать с флешки умею, а как извлечь не могу понять. Заранее спасибо. Пишу стандартно на Java (Android Studio) Android 4.4.
Повторное Автоматическое подключение к WiFi точке Android
Добрый день. Проблемка выплыла, планшет и роутер питаются от одного источника питания, каждый день этот источник отключается\включается. Когда есть питание планшет не засыпает, когда нет питания засыпает. После включения роутер через минуту готов, но планшет автоматически не подключается к точке доступа, пишет Сохранено, в ручную ткнув подключится, но это не допустимо, надо автоматом. ...
Android Notification в определенное время суток http://www.cyberforum.ru/android-dev/thread1854146.html
Я создал уведомление, которое срабатывает по нажатию кнопки, сразу. Что нужно дописать в коде, чтобы уведомление срабатывало, скажем в 15:00? public void onClick(View v) { switch (v.getId()) { case R.id.button7: Context context = getApplicationContext(); Intent notificationIntent = new Intent(); PendingIntent...
Android Метод в новом потоке срабатывает только один раз Господа комрады, выручайте) В целях обучения себя любимого пишу простенькую игрушку, смысл заключается в том что на экране появляется ImageButton и она должна перемещаться по экрану в случайную координату каждую секунду (с течением времени должна ускоряться) и на неё надо нажать, если успел то зачисляется одно очко. Вот, вроде звучит просто, но сломал себе голову над таймером. Вот полный... подробнее

Показать сообщение отдельно
JerryLetehen
4 / 4 / 0
Регистрация: 07.11.2015
Сообщений: 63
23.11.2016, 17:40  [ТС]     Как запустить метод в заданное время
Цитата Сообщение от ExFau$t Посмотреть сообщение
аларм должен сразу сработать
Вот не знаю... не работает у меня... чую где-то таится ошибка, а найти её не могу Такой код правильный будет?
MainActivity
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
package com.example.jerryletehen.setyourvolume;
 
 
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.TimePicker;
import android.media.AudioManager;
 
import java.util.Calendar;
 
 
public class MainActivity extends AppCompatActivity {
    TimePickerDialog timepickerdialog;
    AudioManager volumesetter;
    SeekBar volumeBar;
    int volume = 0;
    public int volume_set;
    int time_set_h;
    int time_set_m;
    boolean checktime = false;
    boolean checkvolume = false;
    public static long time = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // finals
        final TextView editTime = (TextView) findViewById(R.id.editTime);
        final TextView editVolume = (TextView) findViewById(R.id.editVolume);
        final Button button = (Button) findViewById(R.id.button);
        final TextView test = (TextView) findViewById(R.id.test);
        // Users clicks
        // set Time
        editTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar mcurrentTime = Calendar.getInstance();
                int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
                int minute = mcurrentTime.get(Calendar.MINUTE);
 
                timepickerdialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        String selectedMinute0;
                        if (selectedMinute == 0 || selectedMinute == 1 || selectedMinute == 2 || selectedMinute == 3 || selectedMinute == 4 || selectedMinute == 5 || selectedMinute == 6 || selectedMinute == 7 || selectedMinute == 8 || selectedMinute == 9) {
                            selectedMinute0 = "0";
                            editTime.setText(selectedHour + ":" + selectedMinute0 + selectedMinute);
                            checktime = true;
                        } else {
                            editTime.setText(selectedHour + ":" + selectedMinute);
                            checktime = true;
                        }
                        time_set_h = selectedHour;
                        time_set_m = selectedMinute;
                    }
                }, hour, minute, true);//Yes 24 hour time
                timepickerdialog.show();
            }
        });
        // set Volume level
        editVolume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final AlertDialog.Builder volumeSetter = new AlertDialog.Builder(MainActivity.this);
                volumeSetter.setTitle(R.string.ChangeVolume);
                volumeBar = new SeekBar(MainActivity.this);
                volumesetter = (AudioManager) getSystemService(AUDIO_SERVICE);
                volumeBar.setMax(volumesetter.getStreamMaxVolume(AudioManager.STREAM_RING));
                volumeBar.setProgress(volumesetter.getStreamVolume(AudioManager.STREAM_RING));
                volumeBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                    @Override
                    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                        volume = progress;
                    }
 
                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {
                    }
 
                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {
                    }
                });
                volumeSetter.setView(volumeBar);
                volumeSetter.setNeutralButton(R.string.OkeyButton, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        editVolume.setText(getString(R.string.Set) + volume);
                        volume_set = volume;
                        checkvolume = true;
                        dialog.cancel();
                    }
                });
                volumeSetter.setNegativeButton(R.string.Back_Button, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                volumeSetter.show();
            }
        });
        // main button
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder button_alert = new AlertDialog.Builder(MainActivity.this);
                if (!checktime) {
                    button_alert.setMessage(R.string.DidnotSetTime);
                    button_alert.setNegativeButton(R.string.Back_Button, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                } else if (!checkvolume) {
                    button_alert.setMessage(R.string.DidnotSetVolumeLevel);
                    button_alert.setNegativeButton(R.string.Back_Button, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                } else {
                    button_alert.setMessage(R.string.CompleteText);
                    button_alert.setPositiveButton(R.string.OkeyButton, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            AM();
                            dialog.cancel();
                        }
                    });
                    button_alert.setNegativeButton(R.string.Back_Button, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                }
                button_alert.show();
            }
        });
    }
 
    public void AM() {
        MyBroadcast al = new MyBroadcast();
            Intent intent = new Intent(this, MyBroadcast.class);
            PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0);
            al.SetAlarm(this, pi);
    }
 
}
MyBroadCast
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
package com.example.jerryletehen.setyourvolume;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
 
import java.util.Calendar;
 
 
public class MyBroadcast extends BroadcastReceiver {
 
 
    AudioManager volumesetter;
 
 
 
    public void SetAlarm(Context context, PendingIntent pendingIntent) {
        Calendar c_time = Calendar.getInstance();
        c_time.set(Calendar.HOUR_OF_DAY,10);
        c_time.set(Calendar.MINUTE,0);
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC, c_time.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
    }
 
    @Override
    public void onReceive(Context context, Intent intent) {
        volumesetter.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION);
        volumesetter.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 3, 3);
        volumesetter.getStreamMaxVolume(AudioManager.STREAM_SYSTEM);
        volumesetter.setStreamVolume(AudioManager.STREAM_SYSTEM, 3, 3);
        volumesetter.getStreamMaxVolume(AudioManager.STREAM_RING);
        volumesetter.setStreamVolume(AudioManager.STREAM_RING, 3, 3);
    }
}
 
Текущее время: 00:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru