Procházet zdrojové kódy

1.添加应用自动拉起判断,如果是桌面才拉起,防止在其他应用中比如应用商店中时因策略更新而拉起应用。

0423x6e6f
wangwanlei před 2 měsíci
rodič
revize
a722d9dc1d

+ 20
- 1
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt Zobrazit soubor

@@ -676,13 +676,32 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
676 676
         try {
677 677
             try {
678 678
                 val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager
679
-                val runningTasks = am.getRunningTasks(1)
679
+                /*val runningTasks = am.getRunningTasks(1)
680 680
                 if (!runningTasks.isNullOrEmpty()){
681
+                    //判断栈顶是否是自启APP不是的话拉起
681 682
                     val contains = runningTasks[0].topActivity?.className.toString()
682 683
                         .contains(autoAppBean.appPackage!!)
683 684
                     if (contains){
684 685
                         return
685 686
                     }
687
+                }*/
688
+
689
+                //不在判断栈顶activity,现在根据进程名字判断,包含则不拉起(增加条件,当前页面为管控桌面则拉起)
690
+                var manageFlag=false
691
+                val runningTasks = am.getRunningTasks(1)
692
+                if (!runningTasks.isNullOrEmpty()){
693
+                    //判断栈顶是不是管控桌面
694
+                    manageFlag= runningTasks[0].topActivity?.className.toString() == this.javaClass.name
695
+                }
696
+                //当前不是管控桌面才判断下一步,是的话不判断进程。
697
+                if (!manageFlag){
698
+                    val runningApps = am.runningAppProcesses
699
+                    val filter = runningApps.filter { it.processName.equals(autoAppBean.appPackage!!) }
700
+                    if (filter.isNotEmpty()){
701
+                        //允许触摸不然会出现无法触摸的问题
702
+                        canClickFlag = true
703
+                        return
704
+                    }
686 705
                 }
687 706
             }catch (e:Exception){
688 707
 

Načítá se…
Zrušit
Uložit