diff --git a/app/build.gradle b/app/build.gradle
index 038635b..1fa6954 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -77,8 +77,7 @@ dependencies {
implementation files('libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar')
implementation files('libs/MiPush_SDK_Client_3_4_3.jar')
implementation files('libs/badgeview.jar')
- implementation files('libs/TbsFileSdk_base_arm64_release_1.0.5.6000017.20230423093653.aar')
-
+ implementation files('libs/TbsFileSdk_release_1.0.5.6000026.20231101115927.aar')
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.zhy:autolayout:1.4.5'
@@ -96,7 +95,7 @@ dependencies {
implementation 'com.hjq:toast:8.8'
implementation 'org.litepal.android:core:1.5.1'
implementation 'com.orhanobut:logger:2.2.0'
- implementation 'com.yanzhenjie:permission:2.0.3'
+// implementation 'com.yanzhenjie:permission:2.0.3'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'com.github.chrisbanes.photoview:library:1.2.4'
@@ -144,5 +143,6 @@ dependencies {
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
implementation 'org.bouncycastle:bcpkix-jdk15on:1.47'
implementation 'commons-codec:commons-codec:1.15'
+ implementation 'com.google.android.play:app-update:2.0.1'
implementation project(':videocompressor')
}
\ No newline at end of file
diff --git a/app/libs/TbsFileSdk_base_arm64_release_1.0.5.6000023.20231013114928.aar b/app/libs/TbsFileSdk_base_arm64_release_1.0.5.6000023.20231013114928.aar
new file mode 100644
index 0000000..11272a1
Binary files /dev/null and b/app/libs/TbsFileSdk_base_arm64_release_1.0.5.6000023.20231013114928.aar differ
diff --git a/app/libs/TbsFileSdk_base_arm64_release_1.0.5.6000017.20230423093653.aar b/app/libs/TbsFileSdk_release_1.0.5.6000026.20231101115927.aar
similarity index 63%
rename from app/libs/TbsFileSdk_base_arm64_release_1.0.5.6000017.20230423093653.aar
rename to app/libs/TbsFileSdk_release_1.0.5.6000026.20231101115927.aar
index a1a8d41..c9df6fa 100644
Binary files a/app/libs/TbsFileSdk_base_arm64_release_1.0.5.6000017.20230423093653.aar and b/app/libs/TbsFileSdk_release_1.0.5.6000026.20231101115927.aar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8d78cbe..66c3c89 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,7 +40,6 @@
android:name="android.hardware.telephony"
android:required="false" />
-
@@ -456,6 +455,7 @@
android:screenOrientation="portrait" />
= Build.VERSION_CODES.TIRAMISU){
+// // 这个私有广播接收器不能够接收来自其他应用的广播。
+// registerReceiver(mReceiver, mFilter,RECEIVER_NOT_EXPORTED);
+// }else{
+// registerReceiver(mReceiver, mFilter);
+// }
}
/*
@@ -116,7 +131,9 @@ public class BackUploadService extends Service {
@Override
public void onDestroy() {
super.onDestroy();
- unregisterReceiver(mReceiver); // 删除广播
+ //unregisterReceiver(mReceiver); // 删除广播
+ //取消注册广播,防止内存泄漏
+ localBroadcastManager.unregisterReceiver( mReceiver );
}
@Override
diff --git a/app/src/main/java/com/rehome/zhdcoa/service/PushService.java b/app/src/main/java/com/rehome/zhdcoa/service/PushService.java
index fae30e0..0ae5162 100755
--- a/app/src/main/java/com/rehome/zhdcoa/service/PushService.java
+++ b/app/src/main/java/com/rehome/zhdcoa/service/PushService.java
@@ -16,6 +16,7 @@ import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.FileProvider;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.rehome.zhdcoa.App;
import com.rehome.zhdcoa.BuildConfig;
@@ -62,7 +63,6 @@ public class PushService extends IntentService {
private int[] whats = new int[]{};
-
private final String PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "/com.rehome.zhdcoa/";
private final String FILENAME = "zdxoaapp.apk";
@@ -250,14 +250,14 @@ public class PushService extends IntentService {
Intent intent = new Intent();
intent.putExtra("isTask", true);
intent.setAction("com.rehome.zhdcoa.RECEIVER");
- sendBroadcast(intent);
+ LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);
}
} else {
DataSupport.deleteAll(XwaqgcJh.class);
Intent intent = new Intent();
intent.putExtra("isTask", false);
intent.setAction("com.rehome.zhdcoa.RECEIVER");
- sendBroadcast(intent);
+ LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);
}
}
break;
@@ -463,4 +463,26 @@ public class PushService extends IntentService {
}
return null;
}
+
+ private String getVersionNameNew() {
+ //1,包管理者对象packageManager
+ PackageManager pm = getPackageManager();
+ //2,从包的管理者对象中,获取指定包名的基本信息(版本名称,版本号),传0代表获取基本信息
+ try {
+ PackageInfo packageInfo;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ packageInfo = pm.getPackageInfo(getPackageName(), PackageManager.PackageInfoFlags.of(0));
+ } else {
+ packageInfo = pm.getPackageInfo(getPackageName(), 0);
+ }
+ return packageInfo.versionName;
+
+ //PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);
+ //3,获取版本名称
+ //return packageInfo.versionName;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ExamOnline.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ExamOnline.java
index 240693c..adc45bb 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ExamOnline.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ExamOnline.java
@@ -35,6 +35,7 @@ import java.util.ArrayList;
import java.util.List;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.viewpager.widget.ViewPager;
import okhttp3.MediaType;
import okhttp3.RequestBody;
@@ -226,7 +227,8 @@ public class Activity_ExamOnline extends BaseActivity {
//刷新培训考试列表界面
Intent intent = new Intent(Contans.REFRESH_LIST_EXAM_DATA);
intent.putExtra("id", id);
- sendBroadcast(intent);
+ LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
+
timer.cancel();
finish();
}
@@ -359,7 +361,7 @@ public class Activity_ExamOnline extends BaseActivity {
//刷新培训考试列表界面
Intent intent = new Intent(Contans.REFRESH_LIST_EXAM_DATA);
intent.putExtra("id", id);
- sendBroadcast(intent);
+ LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
}
}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DJPXinfoMoreActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DJPXinfoMoreActivity.java
index 5a94692..de6809e 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DJPXinfoMoreActivity.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DJPXinfoMoreActivity.java
@@ -70,7 +70,7 @@ public class DJPXinfoMoreActivity extends BaseActivity {
private String videoPath = "/mnt/sdcard/documents/";
private String videoName = "test.flv";
- private Integer x5DownloadProgress = 0;
+ //private Integer x5DownloadProgress = 0;
private void findView() {
kcmcTx = findViewById(R.id.kcmc_tx);
@@ -134,27 +134,6 @@ public class DJPXinfoMoreActivity extends BaseActivity {
filedataBeans = new ArrayList<>();
dialogDatas = new ArrayList<>();
-
- //注册广播接收, 监听X5内核下载进度
- IntentFilter intentFilter = new IntentFilter("X5DownloadProgress");
- registerReceiver(new BroadcastReceiver() {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- String progress = intent.getStringExtra("progress");
- if (progress != null) {
- x5DownloadProgress = Integer.valueOf(progress);
- }
- }
- }, intentFilter);
- //注册广播接收, 监听X5内核安装完成
- IntentFilter intentFilterX5Install = new IntentFilter("X5InstallFinish");
- registerReceiver(new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
-
- }
- }, intentFilterX5Install);
}
@Override
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt
index e582a95..d6baed8 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt
@@ -5,8 +5,10 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
+import android.os.Build
import android.util.Log
import android.view.View
+import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.rehome.zhdcoa.App
import com.rehome.zhdcoa.Contans
import com.rehome.zhdcoa.R
@@ -20,8 +22,11 @@ import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Response
+
class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding() {
+ private lateinit var localBroadcastManager: LocalBroadcastManager
+
//考试数据
private var produceExamDatas: MutableList? = mutableListOf()
private lateinit var mIntent: Intent
@@ -256,7 +261,17 @@ class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding= Build.VERSION_CODES.TIRAMISU){
+// // 这个私有广播接收器不能够接收来自其他应用的广播。
+// registerReceiver(myReceiver, filter, RECEIVER_NOT_EXPORTED)
+// }else{
+// registerReceiver(myReceiver, filter)
+// }
}
@@ -271,7 +286,9 @@ class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding
+ Log.i(TAG, "init: I100: update info $info")
+ if (info.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE){
+ Log.i(TAG, "I100: init: have update available")
+ } else {
+ Log.i(TAG, "I100: init: no update available")
+ }
+ }
+ appUpdateManager.registerListener(this)
+ }
+ private fun startUpdate(info: AppUpdateInfo, type: Int){
+ try {
+
+ appUpdateManager.startUpdateFlowForResult(info,type,parentActivity, SELF_UPDATE_REQUEST_CODE)
+ currentType = type
+ }catch (exception:Exception){
+ Log.i(TAG, exception.message.toString())
+ }
+ }
+ fun onResume(){
+ appUpdateManager.appUpdateInfo.addOnSuccessListener { info->
+ if(currentType == AppUpdateType.FLEXIBLE){
+ if(info.installStatus() == InstallStatus.DOWNLOADED)
+ flexibleUpdateDownloadCompleted()
+ } else if (currentType == AppUpdateType.IMMEDIATE){
+ if(info.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
+ startUpdate(info, AppUpdateType.IMMEDIATE)
+ }
+ }
+ }
+ }
+ fun onActivityResult(requestCode: Int, resultCode: Int){
+
+ if(requestCode == SELF_UPDATE_REQUEST_CODE){
+ if(resultCode != AppCompatActivity.RESULT_OK){
+ Log.i("app","Update flow failed: $resultCode")
+ }
+ }
+ }
+ fun checkForUpdates(){
+
+ }
+ private fun flexibleUpdateDownloadCompleted(){
+// Snackbar.make(
+// (parentActivity as MainActivity).binding.appBarMain.coordinatorLayout,
+// "An app update has just been downloaded. Please restart app.",
+// Snackbar.LENGTH_INDEFINITE
+// ).apply {
+// setAction("RESTART") { appUpdateManager.completeUpdate()}
+// setActionTextColor(Color.WHITE)
+// show()
+// }
+ }
+ fun onDestroy(){
+ appUpdateManager.unregisterListener(this)
+ }
+ override fun onStateUpdate(state: InstallState) {
+ if(state.installStatus() == InstallStatus.DOWNLOADED){
+ flexibleUpdateDownloadCompleted()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt
index efb69a0..eab58f8 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt
@@ -24,9 +24,13 @@ import com.rehome.zhdcoa.bean.UserInfoBean
import com.rehome.zhdcoa.databinding.ActivityLoginBinding
import com.rehome.zhdcoa.ui.toastview.toastviewbymyself
import com.rehome.zhdcoa.utils.*
+
+
import com.xiaomi.mipush.sdk.MiPushClient
-import com.yanzhenjie.permission.AndPermission
-import com.yanzhenjie.permission.runtime.Permission
+//import com.yanzhenjie.permission.AndPermission
+//import com.yanzhenjie.permission.runtime.Permission
+
+
import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Response
@@ -127,13 +131,16 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() {
@SuppressLint("SetTextI18n")
override fun initData() {
binding.tvVersionCode.text = getString(R.string.version_code) + getVersionName()
- AndPermission.with(this).runtime().permission(
- Permission.READ_PHONE_STATE,
- Permission.READ_EXTERNAL_STORAGE,
- Permission.WRITE_EXTERNAL_STORAGE,
- Permission.CAMERA
- ).onGranted { }.onDenied { }
- .start()
+
+
+// AndPermission.with(this).runtime().permission(
+// Permission.READ_PHONE_STATE,
+// Permission.READ_EXTERNAL_STORAGE,
+// Permission.WRITE_EXTERNAL_STORAGE,
+// Permission.CAMERA
+// ).onGranted { }.onDenied { }
+// .start()
+
val UserIDTemp = SPUtils.get(context, Contans.SP.USER_NAME, "") as String
val UserPwdTemp = SPUtils.get(context, Contans.SP.PASS_WORD, "") as String
@@ -151,8 +158,16 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() {
if (BuildConfig.LOG_ERROR) {
// 管理员
- binding.etUsername.setText("ZHPS_Admin")
- binding.etPassword.setText("Rehome.zhps@996")
+// binding.etUsername.setText("ZHPS_Admin")
+// binding.etPassword.setText("Rehome.zhps@996")
+
+// binding.etUsername.setText("310287")
+// binding.etPassword.setText("He200002@")
+
+ binding.etUsername.setText("310148")
+ binding.etPassword.setText("ZZZHdc4321.")
+
+
}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt
index 1c10a2b..0f35104 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt
@@ -14,6 +14,7 @@ import android.widget.RadioGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
+import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.viewpager.widget.ViewPager
import com.azhon.appupdate.listener.OnButtonClickListener
import com.azhon.appupdate.listener.OnDownloadListener
@@ -311,7 +312,7 @@ class MainActivity : BaseActivityOaToolbarViewBinding() {
.component!!.className
intent.putExtra("className", launchClassName)
intent.putExtra("notificationNum", number)
- context.sendBroadcast(intent)
+ LocalBroadcastManager.getInstance( context ).sendBroadcast(intent)
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/MipcaActivityCapture.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/MipcaActivityCapture.java
index 48620f7..c780d0e 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/MipcaActivityCapture.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/MipcaActivityCapture.java
@@ -1,6 +1,8 @@
package com.rehome.zhdcoa.ui.activity;
+import android.Manifest;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.res.AssetFileDescriptor;
import android.graphics.Bitmap;
import android.media.AudioManager;
@@ -11,6 +13,11 @@ import android.os.Vibrator;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Result;
import com.rehome.zhdcoa.R;
@@ -19,8 +26,6 @@ import com.rehome.zhdcoa.zxing.camera.CameraManager;
import com.rehome.zhdcoa.zxing.decoding.CaptureActivityHandler;
import com.rehome.zhdcoa.zxing.decoding.InactivityTimer;
import com.rehome.zhdcoa.zxing.view.ViewfinderView;
-import com.yanzhenjie.permission.AndPermission;
-import com.yanzhenjie.permission.runtime.Permission;
import java.io.IOException;
import java.util.Vector;
@@ -30,6 +35,9 @@ import java.util.Vector;
public class MipcaActivityCapture extends BaseActivity2 implements SurfaceHolder.Callback {
+ private static final int CAMERA_REQUEST_CODE = 3;//请求码
+
+ private SurfaceHolder mSurfaceHolder;
private CaptureActivityHandler handler;
private ViewfinderView viewfinderView;
@@ -152,17 +160,7 @@ public class MipcaActivityCapture extends BaseActivity2 implements SurfaceHolder
public void surfaceCreated(SurfaceHolder holder) {
if (!hasSurface) {
hasSurface = true;
- AndPermission.with(this)
- .runtime()
- .permission(Permission.CAMERA)
- .onGranted(permissions -> {
- initCamera(holder);
- })
- .onDenied(permissions -> {
- Toast.makeText(MipcaActivityCapture.this, "没有权限,请到设置-权限管理中开启", Toast.LENGTH_SHORT).show();
- finish();
- })
- .start();
+ checkPermission(holder);
}
}
@@ -173,6 +171,43 @@ public class MipcaActivityCapture extends BaseActivity2 implements SurfaceHolder
}
+
+ private void checkPermission(SurfaceHolder surfaceHolder) {
+ /**
+ * 检测 设备是否支持闪光灯
+ */
+ if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
+ showToast("设备没有闪光灯,无法开启手电筒");
+ return;
+ }
+
+ this.mSurfaceHolder = surfaceHolder;
+
+ //动态权限申请
+ if (ContextCompat.checkSelfPermission(MipcaActivityCapture.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
+ //权限请求
+ ActivityCompat.requestPermissions(MipcaActivityCapture.this, new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE);
+ } else {
+ initCamera(surfaceHolder);
+ }
+ }
+
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (CAMERA_REQUEST_CODE==requestCode){
+ if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED) {
+ checkPermission(this.mSurfaceHolder);
+ }else {
+ //权限拒绝
+ Toast.makeText(MipcaActivityCapture.this, "没有权限,请到设置-权限管理中开启", Toast.LENGTH_SHORT).show();
+ finish();
+ }
+ }
+ }
+
+
public ViewfinderView getViewfinderView() {
return viewfinderView;
}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ProduceStudyInfoMoreActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ProduceStudyInfoMoreActivity.kt
index 40c30be..be2a523 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ProduceStudyInfoMoreActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ProduceStudyInfoMoreActivity.kt
@@ -7,6 +7,7 @@ import android.view.View
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
+import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.google.gson.Gson
import com.rehome.zhdcoa.Contans
import com.rehome.zhdcoa.R
@@ -437,8 +438,7 @@ class ProduceStudyInfoMoreActivity :
if (resultCode == RESULT_OK) {
val intent = Intent(Contans.ACTION_REFLASH_PRODUCE_FRAGMENT)
//发送广播,刷新页面
- //发送广播,刷新页面
- sendBroadcast(intent)
+ LocalBroadcastManager.getInstance(context).sendBroadcast(intent)
}
}
}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt
index 5e498c0..f8ae895 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt
@@ -86,23 +86,6 @@ class TrainInfoMoreActivity : BaseActivityOaToolbarViewBinding() {
private var kslb_id: kotlin.String? = null
private var datas: MutableList = mutableListOf()
+ private lateinit var localBroadcastManager: LocalBroadcastManager
+
private val myReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
@@ -65,7 +69,17 @@ class ExamFragment : BaseViewBindingFragment() {
val filter = IntentFilter()
filter.addAction(Contans.REFRESH_LIST_EXAM_DATA)
- requireActivity().registerReceiver(myReceiver, filter)
+
+ //注册广播接收器
+ localBroadcastManager = LocalBroadcastManager.getInstance( context )
+ localBroadcastManager.registerReceiver( myReceiver , filter )
+
+// if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+// // 这个私有广播接收器不能够接收来自其他应用的广播。
+// requireActivity().registerReceiver(myReceiver, filter, Context.RECEIVER_NOT_EXPORTED)
+// }else{
+// requireActivity().registerReceiver(myReceiver, filter)
+// }
setAdapter()
getValidExamTrainList()
@@ -77,7 +91,9 @@ class ExamFragment : BaseViewBindingFragment() {
override fun onDestroy() {
super.onDestroy()
- requireActivity().unregisterReceiver(myReceiver)
+ //requireActivity().unregisterReceiver(myReceiver)
+ //取消注册广播,防止内存泄漏
+ localBroadcastManager.unregisterReceiver( myReceiver );
}
private fun getValidExamTrainList() {
@@ -142,7 +158,7 @@ class ExamFragment : BaseViewBindingFragment() {
val intent =
Intent(Contans.REFRESH_LIST_EXAM_DETAIL_DATA)
intent.putExtra("item", Gson().toJson(item))
- requireActivity().sendBroadcast(intent)
+ localBroadcastManager.sendBroadcast(intent)
}
}
}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt
index 75bed35..6cabc68 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt
@@ -2,13 +2,17 @@ package com.rehome.zhdcoa.ui.fragment
import android.content.BroadcastReceiver
import android.content.Context
+import android.content.Context.RECEIVER_NOT_EXPORTED
import android.content.Intent
import android.content.IntentFilter
+import android.os.Build
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
+import androidx.annotation.RequiresApi
+import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.rehome.zhdcoa.App
import com.rehome.zhdcoa.Contans
import com.rehome.zhdcoa.adapter.ProduceStudyAdapter
@@ -32,20 +36,34 @@ import com.yolanda.nohttp.rest.Response
*/
class ProduceFragment : BaseViewBindingFragment() {
private val kstype = "1"
- private var times:String = ""
- private var timee:String = ""
- private var kslb_id:String? = null
+ private var times: String = ""
+ private var timee: String = ""
+ private var kslb_id: String? = null
private var datas: MutableList = mutableListOf()
private lateinit var produceStudyAdapter: ProduceStudyAdapter
+ private lateinit var localBroadcastManager: LocalBroadcastManager
- override fun getBinding(inflater: LayoutInflater, container: ViewGroup?)= FragmentProduceBinding.inflate(inflater)
+ override fun getBinding(inflater: LayoutInflater, container: ViewGroup?) =
+ FragmentProduceBinding.inflate(inflater)
+
+ @RequiresApi(Build.VERSION_CODES.O)
override fun initView() {
//注册广播,刷新页面
val filter = IntentFilter()
filter.addAction(Contans.ACTION_REFLASH_PRODUCE_FRAGMENT)
- requireActivity().registerReceiver(myReceiver, filter)
+
+ //注册广播接收器
+ localBroadcastManager = LocalBroadcastManager.getInstance(context);
+ localBroadcastManager.registerReceiver(myReceiver, filter)
+
+// if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+// // 这个私有广播接收器不能够接收来自其他应用的广播。
+// requireActivity().registerReceiver(myReceiver, filter,RECEIVER_NOT_EXPORTED)
+// }else{
+// requireActivity().registerReceiver(myReceiver, filter)
+// }
binding.lvMemberNodata.visibility = View.VISIBLE
binding.bottomBtn.setOnClickListener(View.OnClickListener {
@@ -83,7 +101,7 @@ class ProduceFragment : BaseViewBindingFragment() {
}
}
- private val myReceiver: BroadcastReceiver? = object : BroadcastReceiver() {
+ private val myReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
if (Contans.ACTION_REFLASH_PRODUCE_FRAGMENT == action) {
@@ -94,37 +112,38 @@ class ProduceFragment : BaseViewBindingFragment() {
override fun onDestroyView() {
super.onDestroyView()
- if (myReceiver != null) {
- requireActivity().unregisterReceiver(myReceiver)
- }
+ //requireActivity().unregisterReceiver(myReceiver)
+ //取消注册广播,防止内存泄漏
+ localBroadcastManager.unregisterReceiver(myReceiver);
}
fun getProduceStudyData() {
val username = App.getInstance().userInfo.manid
val url = Contans.BASE_URL + Contans.PRODUCE_STUDY_DATA_URL + username
val request = NoHttp.createStringRequest(url, RequestMethod.GET)
- NohttpUtils.getInstance().addNoProgress(requireActivity(),0, request, object : HttpListener {
-
- override fun onSucceed(what: Int, response: Response?) {
- Log.i("app", "----------------")
- val result = response?.get()
- Log.i("app", result?:"result is null")
- val bean = GsonUtils.GsonToBean(
- result,
- ProduceStudyBean::class.java
- )
- if (bean != null && bean.rows.size > 0) {
- binding.lvMemberNodata.visibility = View.GONE
- datas.clear()
- datas.addAll(bean.rows)
- produceStudyAdapter.notifyDataSetChanged()
- } else {
- showToast("无数据")
- binding.lvMemberNodata.visibility = View.VISIBLE
+ NohttpUtils.getInstance()
+ .addNoProgress(requireActivity(), 0, request, object : HttpListener {
+
+ override fun onSucceed(what: Int, response: Response?) {
+ Log.i("app", "----------------")
+ val result = response?.get()
+ Log.i("app", result ?: "result is null")
+ val bean = GsonUtils.GsonToBean(
+ result,
+ ProduceStudyBean::class.java
+ )
+ if (bean != null && bean.rows.size > 0) {
+ binding.lvMemberNodata.visibility = View.GONE
+ datas.clear()
+ datas.addAll(bean.rows)
+ produceStudyAdapter.notifyDataSetChanged()
+ } else {
+ showToast("无数据")
+ binding.lvMemberNodata.visibility = View.VISIBLE
+ }
}
- }
- override fun onFailed(what: Int, response: Response?) {}
- })
+ override fun onFailed(what: Int, response: Response?) {}
+ })
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java
index 80559f8..c8d163e 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java
@@ -1,17 +1,22 @@
package com.rehome.zhdcoa.ui.fragment;
+import static android.content.Context.RECEIVER_NOT_EXPORTED;
+
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
import com.rehome.zhdcoa.App;
import com.rehome.zhdcoa.Contans;
import com.rehome.zhdcoa.DBModel.AjhScInfo;
@@ -74,10 +79,12 @@ import java.util.ArrayList;
import java.util.List;
public class YunXingFragment extends BaseFragment {
+
private static YunXingFragment instance = null;
GridView gvYx;
private final List beanList = new ArrayList<>();
private GridViewYXAdapter adapter;
+ private LocalBroadcastManager localBroadcastManager ;
private MsgReceiver msgReceiver;
private boolean isTask = false;//是否有任务
private final String[] str = {"设备巡点检", "移动仓库", "安健环巡查", "综合巡查", "行为安全观察", "工单录入", "巡视抄表", "定期工作", "设备报表查询"};
@@ -112,7 +119,19 @@ public class YunXingFragment extends BaseFragment {
msgReceiver = new MsgReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.rehome.ydoa.RECEIVER");
- requireActivity().registerReceiver(msgReceiver, intentFilter);
+
+ //注册广播接收器
+ localBroadcastManager = LocalBroadcastManager.getInstance(mActivity) ;
+ localBroadcastManager.registerReceiver( msgReceiver , intentFilter );
+
+
+
+// if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+// // 这个私有广播接收器不能够接收来自其他应用的广播。
+// requireActivity().registerReceiver(msgReceiver, intentFilter,RECEIVER_NOT_EXPORTED);
+// }else{
+// requireActivity().registerReceiver(msgReceiver, intentFilter);
+// }
zys = new ArrayList<>();
@@ -565,7 +584,9 @@ public class YunXingFragment extends BaseFragment {
@Override
public void onDestroy() {
- requireActivity().unregisterReceiver(msgReceiver);
+ //requireActivity().unregisterReceiver(msgReceiver);
super.onDestroy();
+ //取消注册广播,防止内存泄漏
+ localBroadcastManager.unregisterReceiver( msgReceiver );
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index be148a0..a9e4569 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -49,6 +49,7 @@
TODOST
上传时间:
删除
+ one hundred