PDA

View Full Version : نمایش Dialog Window در زمان مشخص



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();


}

مشکل چی میتونه باشه؟؟

ali_khodayar
دوشنبه 18 اسفند 1393, 12:20 عصر
متن خطا

java.lang.RuntimeException: Unable to start receiver root.barnamenevis.notifer.Receiver: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

ali_khodayar
چهارشنبه 20 اسفند 1393, 16:12 عصر
کسی اطلاعاتی داره؟؟
اصلأ امکان انجام چنین کاری هست که یه service و یا یه broadCastReceiver که در پشت صحنه داره کار میکنه یه Dialog window نمایش بده یا خیر؟

ممنون :لبخندساده:

Aram0630
پنج شنبه 21 اسفند 1393, 09:31 صبح
میشه لینک این نمونه کد رو برام بزاری ؟
من واقعا بهش نیاز دارم هرکاری هم کردم نتونستم خودم بسازم .