سلام دوستان من دارم دوره اندروید رو میگذرونم توی یه اپیکیشن که خودم درستش کردم یه مشکل دارم اونم اینکه من یه آلارم میخوام درست کنم که اگه گوشی خاموش روشن شد دوباره آلارم بده من این کار رو با BroadcastReceiver انجام میدم اما هیچ آلارمی نمیده
کد broadcastReceiver:
public class MyBroadcast_Receiver extends BroadcastReceiver {
MyDataBase myDataBase;
private List<NoteModel> noteModels;
private List<PendingIntent> pendingIntents;
AlarmManager alarmManager;
private int requestCode=1001;
private boolean isPM=false;
@Override
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
myDataBase = new MyDataBase(context);
noteModels = new ArrayList<>();
pendingIntents = new ArrayList<>();
Cursor cursor = myDataBase.getRememberInfo(1);
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
NoteModel model = new NoteModel();
model.setId(cursor.getInt(0));
model.setTitle(cursor.getString(1));
model.setDesc(cursor.getString(2));
model.setRemember(cursor.getInt(3));
model.setDate(cursor.getString(4));
model.setTime(cursor.getString(5));
noteModels.add(model);
Intent i = new Intent();
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, requestCode, i, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
String time = model.getTime();
String[] times = time.split(":");
String date = model.getDate();
String[] dates = date.split("/");
if (Integer.parseInt(times[0]) > 12) {
isPM = true;
}
calendar.set(Calendar.YEAR, Integer.parseInt(dates[0]));
calendar.set(Calendar.MONTH, Integer.parseInt(dates[1]));
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dates[2]));
calendar.set(Calendar.HOUR, isPM ? Integer.parseInt(times[0]) - 12 : Integer.parseInt(times[0]));
calendar.set(Calendar.MINUTE, Integer.parseInt(times[1]));
calendar.set(Calendar.AM_PM, isPM ? 1 : 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),1000,pendingIntent);
pendingIntents.add(pendingIntent);
requestCode++;
isPM = false;
}
}
}
}
اینم از manifest:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".AlarmActivity"></activity>
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Second_Activity" />
<activity android:name=".MainActivity" />
<receiver android:name=".MyBroadcast_Receiver"
android:enabled="false"
>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
</application>
ممنون میشم کمکم کنید
به mahdi piri کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟