Browse Source

1.处理MainActivity拉起问题。

0423x6e6f
wangwanlei 3 months ago
parent
commit
ca35b1d48f

+ 26
- 2
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt View File

8
 import android.annotation.SuppressLint
8
 import android.annotation.SuppressLint
9
 import android.app.ActivityManager
9
 import android.app.ActivityManager
10
 import android.app.AlertDialog
10
 import android.app.AlertDialog
11
-import android.bluetooth.BluetoothAdapter
12
 import android.content.ComponentName
11
 import android.content.ComponentName
13
 import android.content.Context
12
 import android.content.Context
14
 import android.content.Intent
13
 import android.content.Intent
176
 
175
 
177
     //判断是否在onresume状态
176
     //判断是否在onresume状态
178
     private var isResumeFlag = true
177
     private var isResumeFlag = true
178
+    //执行了自启请求
179
+    private var netAutoAppFlag=false
179
 
180
 
180
     override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
181
     override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
181
 
182
 
580
         viewModel.viewModelScope.launch {
581
         viewModel.viewModelScope.launch {
581
             viewModel.autoAppData.collect {
582
             viewModel.autoAppData.collect {
582
                 it?.let {
583
                 it?.let {
584
+                    if (!netAutoAppFlag){
585
+                        return@collect
586
+                    }else{
587
+                        netAutoAppFlag=false
588
+                    }
583
                     //连接不为空,并且应用已安装则跳转应用
589
                     //连接不为空,并且应用已安装则跳转应用
584
                     /* it.authUrl="com.xhkjedu.xh_control_browser.MainActivity"
590
                     /* it.authUrl="com.xhkjedu.xh_control_browser.MainActivity"
585
                      it.appPackage="com.xhkjedu.xh_control_browser"*/
591
                      it.appPackage="com.xhkjedu.xh_control_browser"*/
596
                             } else if ((!it.authUrl.isNullOrEmpty()&&!it.appPackage.isNullOrEmpty()) && AppUtils.isAppInstalled(this@MainActivity, it.appPackage)) {
602
                             } else if ((!it.authUrl.isNullOrEmpty()&&!it.appPackage.isNullOrEmpty()) && AppUtils.isAppInstalled(this@MainActivity, it.appPackage)) {
597
                                 //请求成功地址不为空,并且安装了跳转
603
                                 //请求成功地址不为空,并且安装了跳转
598
                                 spUtils.saveJson(Const.AUTOAPPKEY, it)
604
                                 spUtils.saveJson(Const.AUTOAPPKEY, it)
605
+                                LogShow("打开app拉起111")
599
                                 startAutoApp(it)
606
                                 startAutoApp(it)
600
                             } else if (!it.netSucessFlag){
607
                             } else if (!it.netSucessFlag){
601
                                 //请求失败走缓存
608
                                 //请求失败走缓存
606
                                 if ((!autoAppBean.authUrl.isNullOrEmpty()&&!autoAppBean.appPackage.isNullOrEmpty())&&
613
                                 if ((!autoAppBean.authUrl.isNullOrEmpty()&&!autoAppBean.appPackage.isNullOrEmpty())&&
607
                                     AppUtils.isAppInstalled(this@MainActivity, autoAppBean.appPackage) && !it.netSucessFlag) {
614
                                     AppUtils.isAppInstalled(this@MainActivity, autoAppBean.appPackage) && !it.netSucessFlag) {
608
                                     //缓存地址不为空,并且安装了则跳转
615
                                     //缓存地址不为空,并且安装了则跳转
616
+                                    LogShow("打开app拉起222")
609
                                     startAutoApp(autoAppBean)
617
                                     startAutoApp(autoAppBean)
610
                                 } else {
618
                                 } else {
611
                                     //其余情况都允许触控
619
                                     //其余情况都允许触控
640
         }
648
         }
641
 
649
 
642
         lifecycleScope.launch {
650
         lifecycleScope.launch {
651
+            isCreatFlag = true
643
             withContext(Dispatchers.IO){
652
             withContext(Dispatchers.IO){
644
                 delay(2000)
653
                 delay(2000)
645
             }
654
             }
648
             lastTimeLong = System.currentTimeMillis()
657
             lastTimeLong = System.currentTimeMillis()
649
             getLocation()
658
             getLocation()
650
             startWorkManager()
659
             startWorkManager()
651
-            isCreatFlag = true
652
             updateAllStrategy()
660
             updateAllStrategy()
653
         }
661
         }
654
     }
662
     }
657
 
665
 
658
     private fun startAutoApp(autoAppBean: AutoAppBean) {
666
     private fun startAutoApp(autoAppBean: AutoAppBean) {
659
         try {
667
         try {
668
+            try {
669
+                val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager
670
+                val runningTasks = am.getRunningTasks(1)
671
+                if (!runningTasks.isNullOrEmpty()){
672
+                    val contains = runningTasks[0].topActivity?.className.toString()
673
+                        .contains(autoAppBean.appPackage!!)
674
+                    if (contains){
675
+                        return
676
+                    }
677
+                }
678
+            }catch (e:Exception){
679
+
680
+            }
660
             val launchIntent = Intent()
681
             val launchIntent = Intent()
661
             launchIntent.setComponent(
682
             launchIntent.setComponent(
662
                 ComponentName(
683
                 ComponentName(
1183
     }
1204
     }
1184
 
1205
 
1185
     private fun useTimeStrategy() {
1206
     private fun useTimeStrategy() {
1207
+        LogShow("开始执行了吧哈哈")
1186
         //获得sputils中的平板锁定策略
1208
         //获得sputils中的平板锁定策略
1187
         try {
1209
         try {
1188
             //如果存储的是锁定则锁定
1210
             //如果存储的是锁定则锁定
1229
         LogShow("锁定了吧" + mainLockFlag + "|||" + autoAppFlag)
1251
         LogShow("锁定了吧" + mainLockFlag + "|||" + autoAppFlag)
1230
         //自动退出时优先退出而不是拉起app
1252
         //自动退出时优先退出而不是拉起app
1231
         if (autoAppFlag&&!loginoutFlag) {
1253
         if (autoAppFlag&&!loginoutFlag) {
1254
+            //只有网络请求之后两秒延迟后才执行
1232
             userBean?.let {
1255
             userBean?.let {
1256
+                netAutoAppFlag=true
1233
                 viewModel.postAutoAppDetail(it.regionid)
1257
                 viewModel.postAutoAppDetail(it.regionid)
1234
             }
1258
             }
1235
         }
1259
         }

Loading…
Cancel
Save