У меня есть два небольших вопроса;
BroadcastReceiver моего приложения отлично работает, когда приложение работает, я отлично получаю всплывающее сообщение «Вторник в 2», и оно обновляет приложение, но когда я закрываю свое приложение, это означает, что приложение перестает работать, оно не вызывается, а вместо этого он вылетает «Ваше приложение перестало работать», поэтому он знает, что должен вызывать его, но не делает этого, верно?
Кажется, что BroadcastReceiver вызывается каждый день около 14:00, а не только по вторникам в 14:00, я хочу, чтобы приложение обновлялось раз в неделю. Возможно, это потому, что я вызываю свой метод setAlarm() для onCreate моего UpcomingFragment?
В классе UpcomingFragment (где я установил будильник, чтобы он срабатывал каждый вторник в 2 часа)
private void setAlarm(){
AlarmManager alarmMgr = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getActivity(), UpdateReceiver.class);
intent.putExtra("greeting", "Hello");
PendingIntent alarmIntent = PendingIntent.getBroadcast(getActivity(), 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
calendar.set(Calendar.HOUR_OF_DAY, 14);
// With setInexactRepeating(), you have to use one of the AlarmManager interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
}
В BroadcastReceiver onReceive()
public class UpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
UpcomingFragment.getInstance().update();
//if tuesday
Toast.makeText(context, "Tuesday at 2" , Toast.LENGTH_LONG).show();
}
}
Манифест:
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name=".UpdateReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
я не могу предоставить вам logcat, потому что он не печатает его, когда обналичивает, я не знаю, виновата ли здесь моя студия Android или мое приложение. Спасибо!
UpcomingFragment.getInstance().update();
строка вызывает проблему - person ρяσѕρєя K   schedule 14.11.2015