بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکلم با AlarmManager
دوستان سلام.من یه اپ میخوام بسازم که راس ساعت 9 صبح و 9 شب یک یک پیام نشون داده بشه.خب من اموزشای استاد رو دیدم و توی نت هم سرچ زدم و این کدای زیر رو نوشتم.اما الان مشکلی که هست اینه برنامه برای اولین بار که اجرا میشه این Alarm اجرا میشه در صورتی که من میخوام راس همون 9 که تنظیم کردم اجرا بشه.و مشکل بعدی اینکه 12 ساعت بعد که دوباره باید اجرا بشه برنامه کرش میکنه.یک پیغام force close از برنامم فقط نشون میده.توی سایت هم کلی سرچ زدم راستش با راه حل های مختلف مواجه شدم و نتیجه ای باز نگرفتم.دوستان راهنمایی کنید که من دقیقا باید چیکار کنم .آیا اصلا این روشی که رفتم درسته؟کدایی که نوشتم رو در زیر گذاشتم ببینید.کدهای مربوط به منیفست هم قرار دادم.ممنون از راهنماییاتون.
public class ActivityStartup extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(G.context, ActivityAlarm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
G.alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),43200000, pendingIntent);
}}
public class BootCompleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent myIntent = new Intent(G.context, ActivityAlarm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(G.context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
G.alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), 43200000,
pendingIntent);
}
}
public class G extends Application {
public static AlarmManager alarmManager;
public static Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
}
}
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<receiver android:name=".BootCompleteReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
0
0
دوستان میشه یه نگاهی به این سوال من بندازید.شاید بلد بودین راهنمایی کنید (10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
آریا
10 سال پیش
+2
0
به اینصورت بنویس ببین مشکلت حل میشه
Calendar calendar = Calendar.getInstance();
Calendar c = Calendar.getInstance();
calendar.set(Calendar.MONTH, c.get(Calendar.MONTH));
calendar.set(Calendar.YEAR, c.get(Calendar.YEAR));
calendar.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 42);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .