添加日志、限制多进程通讯

This commit is contained in:
yangyakun
2022-08-03 20:52:31 +08:00
parent 13deff1e2f
commit 7a496631ab
4 changed files with 63 additions and 26 deletions

View File

@@ -2,15 +2,19 @@ package com.mogo.och.taxi.passenger.mulprocess;
import android.os.RemoteException;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen;
import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils;
public class OrderServiceImpl extends ILeftMenuService.Stub {
public static final String TAG = "mulprocessOrderServiceImpl";
@Override
public void transmissionIndex(int index) throws RemoteException {
CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 transmissionIndex"+index);
UiThreadHandler.getsUiHandler().post(() -> {
OverlayLeftViewUtils.INSTANCE.transmissionIndexGet(index);
});
@@ -18,11 +22,13 @@ public class OrderServiceImpl extends ILeftMenuService.Stub {
@Override
public void registerCallback(ICallback cb) throws RemoteException {
CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 registerCallback");
LeftMenuOpen.INSTANCE.registerCallbackHost(cb);
}
@Override
public void unRegisterCallback(ICallback cb) throws RemoteException {
CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 unRegisterCallback");
LeftMenuOpen.INSTANCE.unregisterCallbackHost(cb);
}

View File

@@ -10,6 +10,8 @@ import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.eagle.core.utilcode.util.Utils
import com.mogo.och.taxi.passenger.R
@@ -25,6 +27,8 @@ import rx.schedulers.Schedulers
@SuppressLint("StaticFieldLeak")
object LeftMenuOpen {
const val TAG = "mulprocessLeftMenuOpen"
private var windowView: View? = null
private var wl: WindowManager.LayoutParams? = null
private var windowManager: WindowManager? = null
@@ -43,7 +47,7 @@ object LeftMenuOpen {
var checkIndex = OverlayLeftViewUtils.LIVE
private var lastClickTime = 0L
private const val FAST_CLICK_DELAY_TIME = 1000 // 防止事件发送过快
private const val FAST_CLICK_DELAY_TIME = 1300 // 防止事件发送过快
fun setValue(
@@ -51,7 +55,8 @@ object LeftMenuOpen {
wl: WindowManager.LayoutParams?,
windowManager: WindowManager?,
close: (view: View, windowManager: WindowManager?) -> Unit,
open: (view: View, windowManager: WindowManager?) -> Unit
open: (view: View, windowManager: WindowManager?) -> Unit,
isMainProcess: Boolean
) {
this.open = open
this.close = close
@@ -61,7 +66,9 @@ object LeftMenuOpen {
dragList.forEach {
registerDragView(it)
}
registerC()
if(!isMainProcess) {
registerC()
}
}
fun clearValue() {
@@ -168,9 +175,9 @@ object LeftMenuOpen {
fun registerDragView(view: View?) {
if (view != null) {
dragList.add(view)
if (orderService == null) {
registerC()
}
// if (orderService == null) {
// registerC()
// }
view.setOnTouchListener(ItemViewTouchListener())
view.setOnClickListener {
open?.let { it1 -> it1(windowView!!, windowManager) }
@@ -193,6 +200,7 @@ object LeftMenuOpen {
}
fun transmissionIndex(index:Int){
CallerLogger.d(M_TAXI_P + TAG, "tran--transmissionIndex---$index")
if (orderService == null) {
registerC()
}
@@ -200,22 +208,23 @@ object LeftMenuOpen {
}
fun registerCallbackHost(cb:ICallback?){
if (orderService == null) {
registerC()
}
// if (orderService == null) {
// registerC()
// }
cb?.let {
icallbacks?.register(it)
icallbacks.register(it)
}
}
fun unregisterCallbackHost(cb:ICallback?){
cb?.let {
icallbacks?.unregister(it)
icallbacks.unregister(it)
}
}
fun registerCallback(cb:ICallback?){
CallerLogger.d(M_TAXI_P + TAG, "tran--registerCallback--注册")
if (orderService == null) {
registerC()
}
@@ -225,6 +234,7 @@ object LeftMenuOpen {
}
fun unregisterCallback(cb:ICallback?){
CallerLogger.d(M_TAXI_P + TAG, "tran--unregisterCallback--反注册")
cb?.let {
orderService?.unRegisterCallback(it)
}
@@ -240,15 +250,20 @@ object LeftMenuOpen {
Observable.empty<String?>().subscribeOn(Schedulers.io())
.subscribe(object : Observer<String?> {
override fun onCompleted() {
val len = icallbacks.beginBroadcast()
for (i in 0 until len) {
try {
icallbacks.getBroadcastItem(i).onResult(meters, timeInSecond, speed)
} catch (e: RemoteException) {
e.printStackTrace()
CallerLogger.d(M_TAXI_P + TAG, "callCallBack$meters--$timeInSecond--$speed")
try {
val len = icallbacks.beginBroadcast()
for (i in 0 until len) {
try {
icallbacks.getBroadcastItem(i).onResult(meters, timeInSecond, speed)
} catch (e: RemoteException) {
e.printStackTrace()
}
}
icallbacks.finishBroadcast()
}catch (e:Exception){
CallerLogger.e(M_TAXI_P + TAG, "callCallBack${e.message}")
}
icallbacks.finishBroadcast()
}
override fun onError(e: Throwable?) {}
override fun onNext(t: String?) {}
@@ -273,7 +288,12 @@ object LeftMenuOpen {
* 主进程在显示是主动调用
* video进程在天津View是判断是否调用了
*/
@Synchronized
private fun registerC() {
if(orderService!=null){
return
}
CallerLogger.d(M_TAXI_P + TAG, "tran--registerC--获取jni")
val resolver: ContentResolver = Utils.getApp().contentResolver
cu = resolver.query(

View File

@@ -177,7 +177,7 @@ object OverlayLeftViewUtils {
addTarget(context)
LeftMenuOpen.setValue(view, params, windowManager,::close,::open)
LeftMenuOpen.setValue(view, params, windowManager,::close,::open,isMainProcess)
try {
windowManager!!.addView(overlayView, params)
checkProcess()

View File

@@ -11,6 +11,8 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatImageView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.taxi.passenger.R
@@ -52,6 +54,7 @@ class VideoActivity : AppCompatActivity() {
private lateinit var acivTitleIcon: AppCompatImageView
private lateinit var tvTitle: TextView
private var subscribe: Subscription?=null
private val TAG = "mulprocessVideoActivity"
private val arrayListOf = ArrayList<TaxiPassengerVideoPlay>()
@@ -352,7 +355,7 @@ class VideoActivity : AppCompatActivity() {
}
}
subscribe = Observable.interval(0, 8, TimeUnit.SECONDS)
subscribe = Observable.interval(2, 8, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<Long> {
@@ -387,15 +390,13 @@ class VideoActivity : AppCompatActivity() {
}
}
}
subscribe?.let {
if(it.isUnsubscribed){
it.unsubscribe()
}
}
cancleSubscribe()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun finishActivity(event: FinishActivity){
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "finishActivity(event)")
cancleSubscribe()
val intent = Intent()
val parse = Uri.parse("mogo://launcher/main/switch2?type=launch")
intent.data = parse
@@ -405,6 +406,7 @@ class VideoActivity : AppCompatActivity() {
}
override fun onDestroy() {
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onDestroy()")
super.onDestroy()
EventBus.getDefault().unregister(this)
LeftMenuOpen.unregisterCallback(callBack)
@@ -412,6 +414,15 @@ class VideoActivity : AppCompatActivity() {
OverlayLeftViewUtils.dismissOverlayView(false)
FloatingDistanceInfoUtils.dismissOverlayView()
FixMemoryLeak.fixLeak(this)
cancleSubscribe()
}
private fun cancleSubscribe(){
subscribe?.let {
if(!it.isUnsubscribed){
it.unsubscribe()
}
}
}
private fun releaseOnNewInstance() {