SDKには、私はそれをしたい:私はLoginActivity
ログインを使用してMainActivity
にすることができ、MainActivity
は私がブロードキャストを送信するためにButton
をクリックしたときに、私はOK
をクリックすると、活動は、それをAlertDialog
が表示されますButton
を、持っていますすべての活動を終了し、LoginActivity
に戻ります。ブロードキャストを受信したときにAlertDialogを表示しますか? > = 23
私はalertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
設定、およびのmanifest.xmlで<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
を書き、SDK < 23.Butはどのようにそれを実行する際には、実行することができたときSDK> = 23?または私は自分のコードから行う必要がありますか?
@Override
public void onReceive(final Context context, Intent intent) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
dialogBuilder.setTitle("Warning");
dialogBuilder.setMessage("You are forced to be offline. Please try to login again.");
dialogBuilder.setCancelable(false);
dialogBuilder.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (Build.VERSION.SDK_INT >= 23){
if (Settings.canDrawOverlays(context)){
ActivityCollector.finishAll();
Intent intent = new Intent(context, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} else {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
context.startActivity(intent);
}
} else {
ActivityCollector.finishAll();
Intent intent = new Intent(context, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
});
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
ダイアログとしての活動を使用することをお勧め。 –
申し訳ありませんが、私はアンドロイドの初心者です、あなたはそれをはっきりと記述できますか? Thx:D –
http://stackoverflow.com/questions/18525407/defining-android-activity-as-dialog-with-light-themeをお読みください。この例を使って1つの行動を作成し、このアクティビティを表示ダイアログの場所として開始します。 –