0
我想添加一個系統提醒接到一個電話,就像TrueCaller應用程序一樣。它適用於企業應用程序,因此用戶瞭解該功能。IllegalArgumentException在隱藏系統警報
我可以添加系統警報,但我無法隱藏它。只要我隱藏它,它就會生成IllegalArgumentException。
下面是我在做什麼添加系統警報 -
inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
windowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
preRootView = inflater.inflate(R.layout.alert_pre_call_overlay, null);
LayoutParams params = new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_SYSTEM_ALERT,
LayoutParams.FLAG_NOT_TOUCH_MODAL |
LayoutParams.FLAG_NOT_FOCUSABLE| LayoutParams.FLAG_NOT_TOUCHABLE|LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP;
windowManager.addView(preRootView, params);
並隱藏的觀點,我叫下面的代碼 -
windowManager.removeView(preRootView);
的卸下認爲這是錯誤我越來越 -
W/System.err﹕ java.lang.IllegalArgumentException: View=android.widget.LinearLayout{64ea0ff8 V.E..... ......I. 0,0-768,473 #7f060007 app:id/preCallBox} not attached to window manager
W/System.err﹕ at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:370)
W/System.err﹕ at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:299)
W/System.err﹕ at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:79)
W/System.err﹕ at com.appcall.CallOverlay.onRefreshData(CallOverlay.java:213)
W/System.err﹕ at com.appcall.Manager.CommandParser.sendRefreshData(CommandParser.java:458)
W/System.err﹕ at com.appcall.Manager.CommandParser.sendExitCode(CommandParser.java:352)
W/System.err﹕ at com.appcall.XMPPService.onCallStateChanged(XMPPService.java:403)
W/System.err﹕ at com.appcall.PhoneStateMonitor.onCallStateChanged(PhoneStateMonitor.java:137)
W/System.err﹕ at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:369)
W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err﹕ at android.os.Looper.loop(Looper.java:136)
W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5001)
W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
我已經搜索了這個例外,所以,但我只找到關於啤酒的問題rtDialogs。
我沒有使用這項活動的setContentView,而是使用系統警報。它可能是原因嗎?
所以我的問題是如何隱藏警報而不會崩潰我的應用程序?