I'm sending a Broadcast
from a service and then receiving it back from inner BroadcastReceiver
class. I have to show an AlertDialog
based on some logic but while trying to do it, I'm getting this runtime error: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Here's MyBroadcastReceiver
class:
public class MyBroadcastReceiver extends BroadcastReceiver {
public MyBroadcastReceiver(){
super();
}
@Override public void onReceive(final Context context, Intent intent) {
if (intent.getAction() != null && intent.getAction().equals(getString(R.string.broadcast_id))) {
Intent intent1 = new Intent(MyService.this, MainActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent1);
@Override
public void run() {
if (someCondition) {
android.support.v7.app.AlertDialog.Builder builder1 = new android.support.v7.app.AlertDialog.Builder(getBaseContext());
builder1.setView(R.layout.dialog);
builder1.setPositiveButton(
"OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent notificationIntent = new Intent(getBaseContext(), Notification.class);
notificationIntent.putExtra(Notification.NOTIFICATION, getNotificationGame());
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), m, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getBaseContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, finalFutureInMillis, pendingIntent);
postMethod(MainActivity.name, MainActivity.uidOfProfilePic, String.valueOf(MainActivity.currentLatDouble), String.valueOf(MainActivity.currentLngDouble), null, s, v, sA, requestID, user.getUid(), nP);
dialog.cancel();
}
});
final android.support.v7.app.AlertDialog alert11 = builder1.create();
alert11.setCancelable(false);
alert11.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
// error on line below
alert11.show();
}
}
}
}
}
I searched the internet for this and came up with this which suggests to create an activity and do the AlertDialog code in it, but as you can see that I'm doing some work when user clicks OK
and that code retrieved in the Service
and I will be unable to access it from another activity.
Please let me know what should I do now?