android Service中啟動Dialog
在Service 中彈出Dialog與在Activity中彈出Dialog的方式一樣,但是activity finish後,dialog也會隨著關閉,他是依附著activity的。在Service中就不一樣了,Service沒有介面,言彈出Dialog,他依附什麼呢?
首先,看看在Service中如何彈出對話方塊:
dialog = new AlertDialog.Builder(ctx).create();dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); dialog.show();Window window = dialog.getWindow();window.setContentView(R.layout.exit_dialog);Button ok = (Button) window.findViewById(R.id.sure);((TextView)window.findViewById(R.id.prompt_context)).setText(msg);ok.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {//銷毀所有ActivitystopSelf();ExitApplication.getInstance().exit();}});Button cancel = (Button) window.findViewById(R.id.cancel);cancel.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {dialog.cancel();}});dialog.setCancelable(false);
在上面有這樣一句話:
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
這是設定dialog屬於全域的,系統的對話方塊,在任何介面都會彈出來。
但是,當我自身app退出時,服務繼續運行,又不希望dialog彈出來,怎麼實現呢?
有待研究啊!