當前位置:首頁 » 安卓系統 » 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}

熱點內容
資料庫導出dmp 發布:2025-07-12 17:39:08 瀏覽:335
濟南少兒編程哪家好 發布:2025-07-12 17:33:09 瀏覽:128
c語言fread返回值 發布:2025-07-12 16:57:32 瀏覽:680
王者榮耀在哪裡顯示賬號密碼 發布:2025-07-12 16:36:42 瀏覽:898
打包sql資料庫 發布:2025-07-12 16:19:27 瀏覽:797
php日誌查看 發布:2025-07-12 16:12:10 瀏覽:214
ftp目錄映射為本地盤符 發布:2025-07-12 16:06:59 瀏覽:645
nas存儲百科 發布:2025-07-12 16:03:17 瀏覽:126
python的sort函數 發布:2025-07-12 15:53:21 瀏覽:50
ensp伺服器怎麼設置web根目錄 發布:2025-07-12 15:47:56 瀏覽:286