Пишу код будильника для своего приложения, но он не срабатывает
public class AlarmActivity extends BaseActivity implements View.OnClickListener {
private Calendar mCalendar;
private AlarmManager mAlarmManager;
private Ringtone mRingtone;
private PendingIntent mPendingIntent;
private Intent mIntent;
TimePicker mTimePicker;
Handler myHandler = new Handler();
Thread myThread = new Thread(new Runnable() {
@Override
public void run() {
myHandler.post(new Runnable() {
@Override
public void run() {
mCalendar = Calendar.getInstance();
final int hour = mCalendar.get(Calendar.HOUR_OF_DAY);
int minute = mCalendar.get(Calendar.MINUTE);
mCalendar.set(Calendar.HOUR_OF_DAY, 17);
mCalendar.set(Calendar.MINUTE, 13);
mCalendar.set(Calendar.SECOND, 0);
getReceiver();
}
});
}
});
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
// убрал код на поиск вьюшек и установку слушателей
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
mIntent = new Intent(getApplicationContext(), AlarmReceiver.class);
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
mRingtone = RingtoneManager.getRingtone(getApplicationContext(), notification);
mRingtone.play();
myThread.start();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnBeginSchedule:
startActivity(new Intent(getApplicationContext(), PlayExerciseActivity.class));
mRingtone.stop();
break;
case R.id.btnCancelSchedule:
mRingtone.stop();
myThread.interrupt();
break;
case R.id.btnDelaySchedule:
mRingtone.stop();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mPendingIntent = PendingIntent.getBroadcast(AlarmActivity.this, 0, mIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), mPendingIntent);
AlarmActivity.this.finish();
break;
}
}
public void getReceiver() {
mPendingIntent = PendingIntent.getBroadcast(AlarmActivity.this, 0, mIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), mPendingIntent);
mAlarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), AlarmManager.INTERVAL_HALF_HOUR, mPendingIntent);
}
@Override
public void onBackPressed() {
myThread.interrupt();
}
}
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Build.VERSION.SDK_INT >= 16) {
Intent i = new Intent(context.getApplicationContext(), AlarmActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("fast", true);
i.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
context.startActivity(i);
Log.d("Receiver", "text");
}
}
}
В манифесте есть вот это
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.SET_ALARM" />
<receiver android:name=".ui.alarm.AlarmReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем привет, пишу тестовое задание на Android - разработчика, и одним из требований является написание нескольких Jnit тестов (которые я ни разу...
Если ли какая нибудь возможность в webkit выводить определенные элементы/блоки со страницы сайта, работоспособныеНапример, есть мобильная...
У вас применен шаблон Builder и шаблон Fluent Interface
Хочу использовать AlarmManager, для того, чтобы приложение делало определенные действия в полночь (запись в бд), но не могу сконструировать простое...