Was ich erstellen möchte, ist ein Popup-Stil-Anwendung.Android Popup-Stil Aktivität, die oben auf alle anderen Anwendungen
Ich habe einen Dienst im Hintergrund - etwas kommt in die Warteschlange und ich möchte eine Aktivität starten, um den Benutzer zu informieren - sehr sehr ähnlich der Funktionalität der SMSPopup App.
So habe ich den Code, wo etwas in der Warteschlange ankommt und es ruft meine Aktivität.
Aus irgendeinem Grund wird die Aktivität jedoch immer über der ursprünglich gestarteten Aktivität angezeigt, anstatt nur auf dem Hauptdesktop des Android-Geräts angezeigt zu werden.
Als Beispiel:
Ich habe die Haupttätigkeit, die, wenn gezeigt wird die Anwendung
läuft habe ich den Dienst, die Warteschlange
prüft ich ein Popup-Aktivität haben.
Wenn ich die Hauptaktivität starte, startet es den Dienst - ich kann jetzt schließen.
Ich habe dann etwas in der Warteschlange und es schafft die Popup-Aktivität, die mit dem Pop-up auf die er die Haupttätigkeit startet: S Wie verhindere ich das und habe es sich verhalten, wie ich will ...
die Pop-up-Klasse ist:
public class SMSPopup extends Activity implements OnClickListener{
public static String msg;
@Override
public void onCreate(Bundle bundle){
super.onCreate(bundle);
// Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
this.setContentView(R.layout.popup);
TextView tv = (TextView)findViewById(R.id.txtLbl);
Intent intent = getIntent();
if (intent != null){
Bundle bb = intent.getExtras();
if (bb != null){
msg = bb.getString("com.andy.tabletsms.message");
}
}
if(msg == null){
msg = "LOLOLOL";
}
tv.setText(msg);
Button b = (Button)findViewById(R.id.closeBtn);
b.setOnClickListener(this);
}
@Override
public void onClick(View v) {
this.finish();
}
}
und ich rufe die Aktivität von einem Rundfunkempfänger, der die Warteschlange alle 30 Sekunden oder so überprüft:
if(main.msgs.size()>0){
Intent testActivityIntent = new Intent(context.getApplicationContext(), com.andy.tabletsms.work.SMSPopup.class);
testActivityIntent.putExtra("com.andy.tabletsms.message", main.msgs.get(0));
testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(testActivityIntent);
}
das Layout ist hier: 01.236.
Was ist "main" (wie in main.msgs.get (0)) und wo ist es? – Squonk
Es ist eine Arraylist, die Strings enthält .... nicht wirklich auf das Problem bezogen :) – RenegadeAndy
Sie sagen also - "... startet die Hauptaktivität mit dem Popup darüber". Wurde die Hauptaktivität "wirklich" gestartet? Mit anderen Worten, wenn Sie die ZURÜCK-Taste drücken, verschwindet die Popup-Aktivität und Sie sehen die Hauptaktivität. Oder hat die Popup-Aktivität einen Hintergrund mit der gleichen Titelleiste wie die Hauptaktivität, sodass sie wie die Hauptaktivität aussieht? – Squonk