ich einen Alarm Dialog über AlertDialogManager
Klasse zu einer non-activity
Klasse DeviceAdminReceiverSample
‚s Methode onDisabled
, zeigen wollen, aber wenn ich alertDialog
über diese Methode aufrufen, erzeugt es Fehler mit Text nachanzeigen Dialog Alarm aus einer nicht-Aktivitätsklasse in android
Fehler
06-12 12:01:19.923: E/AndroidRuntime(468): FATAL EXCEPTION: main
06-12 12:01:19.923: E/AndroidRuntime(468): java.lang.RuntimeException: Unable to start
receiver com.android.remotewipedata.DeviceAdminReceiverSample:
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not
for an application
ich weiß, das Problem mit context
Sache ist, aber ich weiß nicht, was dort zu setzen, so dass es funktioniert, habe ich versucht, this
, getApplicationContext()
, aber alles vergebens. Mein Code für beide Klassen unter
AlertDialogManager
public class AlertDialogManager {
public void showAlertDialog(Context context, String title, String message,
Boolean status) {
final AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
if (status != null)
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.show();
}
}
DeviceAdminReceiverSample
public class DeviceAdminReceiverSample extends DeviceAdminReceiver {
static final String TAG = "DeviceAdminReceiver";
AlertDialogManager alert = new AlertDialogManager();
/** Called when this application is no longer the device administrator. */
@Override
public void onDisabled(Context context, Intent intent) {
super.onDisabled(context, intent);
Toast.makeText(context, R.string.device_admin_disabled,
Toast.LENGTH_LONG).show();
// intent.putExtra("dialogMessage", "Device admin has been disabled");
// intent.setClass(context, DialogActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(intent);
alert.showAlertDialog(context, "Alert",
"Device admin has been disabled", true);
}
eine DialogActivity dafür erstellen. –
Verwenden Sie das Aktivitätsobjekt anstelle des Kontextobjekts. – Ajay