當前位置:首頁 » 安卓系統 » android判斷dialog

android判斷dialog

發布時間: 2023-02-20 23:21:29

① Android如何判斷當前窗口是Activity還是Dialog

Activity是Android四大組件之一,而Dialog不是Android的組件,Activity用於實現一個功能性窗口,而Dialog用於做出一些提示及一些選擇性操作,兩者應用的場景是不同的。

在程序中把這個窗口對象獲取到,通過instanceof來判斷這是對象是歸屬於Activity還是Dialog.

② Android 全局彈窗(Dialog)快速實現

項目中 雲信IM同一帳號,在多處登錄時,要實現互踢功能。

在收到被踢通知時,彈窗提示用戶被踢,點擊繼續跳轉到登錄界面,取消則關閉App

由於不知道用戶會在哪個界面操作時被踢,接受通知的那個Activity有可能已經失去上下文,導致空指針異常!從而無法 Toast 或 彈窗。

能實現 全局Dialog 就好了!

由於退出App的時候,要清除之前所有的Activity,其實就是退出登錄功能。

我採用 集合法 來實現的退出登錄 ,在BaseActivity中記錄所有打開過的Activity,然後遍歷清除。

然後在 BaseActivity 中調用 addActivity() ,不在贅述!

如果能獲取到用戶當前觀看的界面,然後將上下文傳過去,就可以實現全局Dialog

當前頁面也就是棧頂Activity,也就是最後添加的那個Activity。如下:

然後在使用的地方獲取

即:

注意:之所以返回AppCompatActivity,而不是Activity,
是因為彈出Dialog 需要 supportFragmentManager ,Activity 獲取不到

以上就可以實現全局Dialog了。

另外,上述Dialog是用DialogFragment寫的,感興趣可閱 《DialogFragment 去除內容區稜角背景(不規則圓角)》 ,附有工具類及用法。

③ Android如何獲取當前窗口的對象判斷它是Activity的類對象還是Dialog的類對象

您說具體點,什麼情況下獲取當前窗口的對象。
如果是在一個activity里獲取dialog彈出來沒有就是if(dialog!=null&&dialog.isshowing){//就是當前窗口是dialog界面 dialog.this就是當前窗口對象}
eles{//是當前activity 為窗口對象, activity.this}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:251
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705