ali_khodayar
دوشنبه 18 اسفند 1393, 12:00 عصر
با عرض سلام
یه برنامه ای دوستان توی قسمت نمونه برنامه ها گذاشته بودن که توی یه ساعت خاص یه notification نمایش میده .
من میخوام Dialog Window هم بهش اضافه کنم. اما زمانی که کد نمایش Dialog Window رو اضافه می کنم برنامه کرش میکنه.
این کد برنامه
import java.util.Calendar;
import android.app.AlarmManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
public class Receiver extends BroadcastReceiver {
public static final String ACTION_SET_ALARM = "notifer.SET_ALARM";
public static final String ACTION_SHOW_NOTIFICATION = "notifer.SHOW_NOTIFICATION";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(ACTION_SHOW_N OTIFICATION)) {
showNotification(context);
return;
}
setAlarm(context);
}
private void showNotification(Context context) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.ic_launcher).setC ontentTitle(
"do your work" );
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(100, mBuilder.build());
}
private void setAlarm(Context context) {
Intent intent = new Intent(context, this.getClass());
intent.setAction(ACTION_SHOW_NOTIFICATION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, 0);
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 21);
calendar.set(Calendar.MINUTE, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
pendingIntent);
}
}
این هم قسمتی که من اضافه کردم
private void showNotification(Context context) { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.ic_launcher).setC ontentTitle(
"do your work" );
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(100, mBuilder.build());
Dialog dialog= new Dialog( context);
dialog.setContentView(R.layout.activity_main);
dialog.setTitle("This is your time");
dialog.show();
}
مشکل چی میتونه باشه؟؟
یه برنامه ای دوستان توی قسمت نمونه برنامه ها گذاشته بودن که توی یه ساعت خاص یه notification نمایش میده .
من میخوام Dialog Window هم بهش اضافه کنم. اما زمانی که کد نمایش Dialog Window رو اضافه می کنم برنامه کرش میکنه.
این کد برنامه
import java.util.Calendar;
import android.app.AlarmManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
public class Receiver extends BroadcastReceiver {
public static final String ACTION_SET_ALARM = "notifer.SET_ALARM";
public static final String ACTION_SHOW_NOTIFICATION = "notifer.SHOW_NOTIFICATION";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(ACTION_SHOW_N OTIFICATION)) {
showNotification(context);
return;
}
setAlarm(context);
}
private void showNotification(Context context) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.ic_launcher).setC ontentTitle(
"do your work" );
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(100, mBuilder.build());
}
private void setAlarm(Context context) {
Intent intent = new Intent(context, this.getClass());
intent.setAction(ACTION_SHOW_NOTIFICATION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, 0);
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 21);
calendar.set(Calendar.MINUTE, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
pendingIntent);
}
}
این هم قسمتی که من اضافه کردم
private void showNotification(Context context) { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.ic_launcher).setC ontentTitle(
"do your work" );
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(100, mBuilder.build());
Dialog dialog= new Dialog( context);
dialog.setContentView(R.layout.activity_main);
dialog.setTitle("This is your time");
dialog.show();
}
مشکل چی میتونه باشه؟؟