2016-10-28 16 views
0

Wie öffne ich einen Dialog in einer neuen Aktivität aus einer Nichtaktivität? Ich habe einen Dienst, der einen Countdown-Timer ausführt, und wenn der Countdown-Timer abgelaufen ist, möchte ich, dass ein Dialog in der Hauptaktivität geöffnet wird. Ich kann das anscheinend nicht herausfinden. Ich habe normalerweise versucht, den Alarmdialog einzurichten, der nicht funktioniert hat, und ich habe versucht, Absichten mit Extras und Bündeln zu senden und immer noch kein Glück. Ich habe auf Google nach Hilfe gesucht und die Lösung aus this link ermüdet.So öffnen Sie einen Alarmdialog in einer anderen Aktivität

 @Override 
     public void onFinish() { 
      Log.i(TAG, "Timer finished"); 
      cdt.start(); 
      showNotification(); 
      addpoints(); 
      savepref(); 
      Intent intent = new Intent(BroadcastService.this, MainActivity.class); 
      Bundle bundle = new Bundle(); 
      bundle.putInt("alert_icon_res_id", android.R.drawable.ic_dialog_info); 
      bundle.putString("alert_title", "Some Title"); 
      bundle.putString("alert_message", "Some message"); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

      startActivity(intent); 





     } 
    }; 

    cdt.start(); 
} 

Hauptaktivitätscode hier:

setContentView(R.layout.activity_main); 

    startService(new Intent(this, BroadcastService.class)); 
    Log.i(TAG, "Started service"); 

    Bundle b = getIntent().getExtras(); 
    if (b != null && b.containsKey("alert_icon_res_id")) { 
     int icon = b.getInt("alert_icon_res_id"); 
     String title = b.getString("alert_title"); 
     String message = b.getString("alert_message"); 

     new AlertDialog.Builder(this).setIcon(icon) 
       .setTitle(title).setMessage(message) 
       .setPositiveButton("Close", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       }).create().show(); 
    } 

Antwort

0

In OnFinish Sie nicht das Bündel in der Absicht gestellt haben.

Versuchen Sie folgendes:

Bundle bundle = new Bundle(); 

bundle.putInt("alert_icon_res_id", android.R.drawable.ic_dialog_info); 

bundle.putString("alert_title", "Some Title"); 

bundle.putString("alert_message", "Some message"); 

intent.putExtras(bundle); // add this line 

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

startActivity(intent); 
+0

das funktioniert !! aber es öffnet sich immer wieder neue Aktivitäten. –

Verwandte Themen