То, что я хочу создать, - это приложение в стиле всплывающего окна.
У меня есть служба в фоновом режиме - что-то приходит в очередь, и я хочу, чтобы активность начала информировать пользователя - очень похоже нафункциональность приложения SMSPopup.
Итак, у меня есть код, по которому что-то поступает в очередь и вызывает мою активность.
Однако по какой-то причине активность всегда отображается поверх изначально запущенной активностипросто появляется на главном рабочем столе устройства Android.
Как пример:
У меня есть основное действие, которое отображается при запуске приложения
У меня естьслужба, которая проверяет очередь
У меня есть всплывающее действие.
Когда я запускаю основное действие, оно запускает службу - теперь я могу закрыть это.
Затем у меня что-то включеноочередь, и он создает всплывающее действие, которое запускает основное действие с всплывающим элементом поверх него: S Как мне остановить это и заставить его вести себя так, как я хочу ...
Класс всплывающего окна:
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();
}
}
, и я вызываю активность от широковещательного приемника, который проверяет очередь каждые 30 секунд или около того:
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);
}
Расположение здесь: http://pastebin.com/F25u6wdM