2016-07-18 6 views
1

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(); 
    } 
+0

ダイアログとしての活動を使用することをお勧め。 –

+0

申し訳ありませんが、私はアンドロイドの初心者です、あなたはそれをはっきりと記述できますか? Thx:D –

+0

http://stackoverflow.com/questions/18525407/defining-android-activity-as-dialog-with-light-themeをお読みください。この例を使って1つの行動を作成し、このアクティビティを表示ダイアログの場所として開始します。 –

答えて

0

これを試してみてください::

int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
if (currentapiVersion >= 23){ 

    //Do what you want 

} else{ 

} 
+0

私はあなたが言うように書いていると思いますが、より明確に手助けすることができますか?ありがとうございました:D –

+0

23より大きいapiバージョンはダイアログを表示する必要があることを意味します。そのコードを使用してAPIバージョンの前にチェックしてください。あなたのデバイスが使用しているapiのバージョンは何ですか?あなたは理解しましたか? – Punithapriya

+0

はい、私は知っていますが、私は自分のコードで書いています。と私はそれをraghtly使用することはできません、あなたは私のコードでそれを解決するために手伝ってくれる? –

関連する問題