Files
zd_servicing/servicing/src/main/java/com/za/base/PushMessageActivity.kt
songzhiling c1c070dfac build(servicing): 更新构建配置并升级版本号
-禁用 release 和 debug 构建类型的代码压缩
- 添加 publishNonDefault 配置项
-将版本号从 1.0.1.9.9.126 升级到 1.0.1.9.9.127
2025-07-11 17:48:46 +08:00

105 lines
3.3 KiB
Kotlin

package com.za.base
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import com.google.gson.Gson
import com.za.bean.JpushBean
import com.za.common.GlobalData
import com.za.common.log.LogUtil
import com.za.service.PushListener
import com.za.service.ServiceManager
open class PushMessageActivity : AppCompatActivity() {
private var currentDialog : AlertDialog? = null
override fun onCreate(savedInstanceState : Bundle?) {
super.onCreate(savedInstanceState) // setupPushMessageReceiver()
}
private fun setupPushMessageReceiver() { // 注册推送消息接收器
ServiceManager.registerPushListener(object : PushListener {
override fun broadcast(msg : String) {
sendMessageToMainProcess(type = Const.PushMessageType.BROADCAST,
message = msg,
context = this@PushMessageActivity)
}
override fun giveUpOrder(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.GIVE_UP,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
override fun importantTip(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.IMPORTANT_TIP,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
override fun reportHandle(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.REPORT_HANDLE,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
override fun newOrderMsg(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.NEW_ORDER,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
override fun reDispatchOrder(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.RE_DISPATCH,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
override fun revokeOrder(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.REVOKE,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
override fun modifyOrder(jpushBean : JpushBean) {
sendMessageToMainProcess(type = Const.PushMessageType.MODIFY,
message = Gson().toJson(jpushBean),
context = this@PushMessageActivity)
}
})
}
override fun onPause() {
super.onPause()
dismissCurrentDialog()
}
private fun dismissCurrentDialog() {
try {
currentDialog?.dismiss()
currentDialog = null
} catch (e : Exception) {
LogUtil.print("PushActivityLifecycleCallbacks", "关闭对话框失败: ${e.message}")
}
}
companion object {
internal const val GIVE_UP_TYPE_NORMAL = 1
internal const val DIALOG_TAG_GIVE_UP = "giveUp"
private fun sendMessageToMainProcess(context : Context, type : String, message : String) {
// 使用广播将消息发送到主进程
val intent = Intent(Const.PushMessageType.ACTION_MAIN.takeIf { GlobalData.isMaster }
?: Const.PushMessageType.ACTION_SDK)
intent.setPackage(context.packageName)
intent.putExtra("type", type)
intent.putExtra("message", message)
context.sendBroadcast(intent)
LogUtil.print("KeepAliveService", "发送消息到主进程: $type")
}
}
}