Commit 337c6847 authored by linfeng's avatar linfeng

极光

parent 8ef885d7
...@@ -8,8 +8,8 @@ android { ...@@ -8,8 +8,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
flavorDimensions "default" flavorDimensions "default"
versionCode 159 versionCode 160
versionName "1.5.9" versionName "1.6.0"
multiDexEnabled true multiDexEnabled true
......
...@@ -3,7 +3,9 @@ package com.xxfc.rv; ...@@ -3,7 +3,9 @@ package com.xxfc.rv;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.Application;
import android.content.Context; import android.content.Context;
import android.os.Bundle;
import android.os.StrictMode; import android.os.StrictMode;
import android.util.Log; import android.util.Log;
...@@ -31,6 +33,7 @@ import com.squareup.leakcanary.LeakCanary; ...@@ -31,6 +33,7 @@ import com.squareup.leakcanary.LeakCanary;
import com.tencent.bugly.crashreport.CrashReport; import com.tencent.bugly.crashreport.CrashReport;
import com.umeng.commonsdk.UMConfigure; import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig; import com.umeng.socialize.PlatformConfig;
import com.xxfc.rv.other.CustomActivityManager;
import com.xxfc.rv.other.RvActivityLifecycleCallbacks; import com.xxfc.rv.other.RvActivityLifecycleCallbacks;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
...@@ -70,7 +73,7 @@ public class RvClientApplication extends FrameApp { ...@@ -70,7 +73,7 @@ public class RvClientApplication extends FrameApp {
ShareInstall.getInstance().reportRegister(); ShareInstall.getInstance().reportRegister();
} }
LogUtil.setLogEnable(BuildConfig.DEBUG, getApplicationContext()); LogUtil.setLogEnable(BuildConfig.DEBUG, getApplicationContext());
if(BuildConfig.DEBUG){ if (BuildConfig.DEBUG) {
CrashHandler.getInstance().init(getApplicationContext()); CrashHandler.getInstance().init(getApplicationContext());
} }
// 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext // 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
...@@ -130,6 +133,8 @@ public class RvClientApplication extends FrameApp { ...@@ -130,6 +133,8 @@ public class RvClientApplication extends FrameApp {
/**********************************************/ /**********************************************/
registerActivityLifecycleCallbacks(new RvActivityLifecycleCallbacks()); registerActivityLifecycleCallbacks(new RvActivityLifecycleCallbacks());
// registerLifecycle();
} }
...@@ -242,4 +247,42 @@ public class RvClientApplication extends FrameApp { ...@@ -242,4 +247,42 @@ public class RvClientApplication extends FrameApp {
} }
private void registerLifecycle() {
appInstance.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
// 这里记录栈顶Activity的名字
CustomActivityManager.setTopActivity(activity);
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
// 清除栈顶Activity
CustomActivityManager.clearTopActivity();
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
}
} }
package com.xxfc.rv.other;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.text.TextUtils;
import android.widget.Toast;
import com.xxfc.rv.RvClientApplication;
import com.yuyife.okgo.OkGoUtil;
public class ActivityStartCheckUtils {
private static final int TIME_DELAY = 600;
private static ActivityStartCheckUtils sInstance;
private boolean mPostDelayIsRunning;
private String mClassName;
// private PermissionGuideDialog mDialog;
private Handler mHhandler = new Handler();
private ActivityStartCheckUtils() {
}
public static ActivityStartCheckUtils getInstance() {
if (sInstance == null) {
synchronized (ActivityStartCheckUtils.class) {
if (sInstance == null) {
sInstance = new ActivityStartCheckUtils();
}
}
}
return sInstance;
}
//这里是倒计时完成后的判断逻辑
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
mPostDelayIsRunning = false;
// 判断要打开的Activity是不是已经在栈顶了
if (!isActivityOnTop()) {
// context 这里根据自己项目具体处理 能获得context就行
Context context = OkGoUtil.application;//这个getAppContext需要自行修改
if (context != null ) {
// if (mDialog == null) {
// // 自定义的Dialog,这个代码就没必要贴了
// mDialog = new PermissionGuideDialog(context, mToken);
// }
// mDialog.setCancelable(false);
// mDialog.show();
Toast.makeText(context, "44444", Toast.LENGTH_SHORT).show();
}
}
}
};
public void startActivity(Context context, Intent intent, String className) {
if (context == null || intent == null || TextUtils.isEmpty(className)) {
return;
}
context.startActivity(intent);
mClassName = className;
if (mPostDelayIsRunning) {
mHhandler.removeCallbacks(mRunnable);
}
mPostDelayIsRunning = true;
mHhandler.postDelayed(mRunnable, TIME_DELAY);
}
private boolean isActivityOnTop() {
boolean result = false;
String topActivityName = CustomActivityManager.getTopActivity();
if (!TextUtils.isEmpty(topActivityName)) {
if (topActivityName.contains(mClassName)) {
result = true;
}
}
return result;
}
}
package com.xxfc.rv.other;
import android.app.Activity;
import com.rv.component.utils.Cookie;
import com.yuyife.okgo.OkGoUtil;
public class CustomActivityManager {
private static final String SP_KEY_ACTIVITY_STACK_TOP = "sp_key_activity_stack_top";
public static String getTopActivity() {
// 这里从SP中读取栈顶Activity名字
return Cookie.getStringValue(OkGoUtil.application, SP_KEY_ACTIVITY_STACK_TOP);
}
public static void setTopActivity(Activity topActivity) {
if (topActivity != null) {
// 这里把栈顶Activity名字存入SP
Cookie.save(OkGoUtil.application, SP_KEY_ACTIVITY_STACK_TOP, topActivity.getLocalClassName());
}
}
public static void clearTopActivity() {
// 这里清除SP数据
Cookie.clearStringValue(SP_KEY_ACTIVITY_STACK_TOP);
}
}
package com.xxfc.rv.other; package com.xxfc.rv.other;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
...@@ -8,6 +9,8 @@ import android.os.Bundle; ...@@ -8,6 +9,8 @@ import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.alibaba.android.arouter.launcher.ARouter;
import com.frame.base.url.Constance;
import com.rv.home.rv.module.ui.main.home.order.EvaluationActivity; import com.rv.home.rv.module.ui.main.home.order.EvaluationActivity;
import com.rv.home.rv.module.ui.main.home.order.MemberOrderDetailsActivity; import com.rv.home.rv.module.ui.main.home.order.MemberOrderDetailsActivity;
import com.rv.home.rv.module.ui.main.home.order.OrderDetailActivity; import com.rv.home.rv.module.ui.main.home.order.OrderDetailActivity;
...@@ -15,11 +18,14 @@ import com.rv.home.rv.module.ui.main.home.order.OrderListActivity; ...@@ -15,11 +18,14 @@ import com.rv.home.rv.module.ui.main.home.order.OrderListActivity;
import com.rv.home.rv.module.ui.main.home.order.TravelOrderDetailsActivity; import com.rv.home.rv.module.ui.main.home.order.TravelOrderDetailsActivity;
import com.rv.rvmine.traveler.CollectionActivity; import com.rv.rvmine.traveler.CollectionActivity;
import com.rv.share.ShareActivity; import com.rv.share.ShareActivity;
import com.rv.share.WebViewActivity;
import com.rv.tourism.api.TourismApi;
import com.xxfc.rv.MainActivity; import com.xxfc.rv.MainActivity;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.lang.reflect.Method;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
...@@ -100,6 +106,14 @@ public class MyReceiver extends BroadcastReceiver { ...@@ -100,6 +106,14 @@ public class MyReceiver extends BroadcastReceiver {
intent2.setClass(context, MemberOrderDetailsActivity.class); intent2.setClass(context, MemberOrderDetailsActivity.class);
context.startActivity(intent2); context.startActivity(intent2);
break; break;
case "6":
if (jsonObject.has("url") && jsonObject.has("title")) {
intent2.putExtra("title", jsonObject.getString("title"));
intent2.putExtra("url", jsonObject.getString("url"));
intent2.setClass(context, WebViewActivity.class);
context.startActivity(intent2);
}
break;
default: default:
intent2.setClass(context, MainActivity.class); intent2.setClass(context, MainActivity.class);
context.startActivity(intent2); context.startActivity(intent2);
...@@ -146,6 +160,15 @@ public class MyReceiver extends BroadcastReceiver { ...@@ -146,6 +160,15 @@ public class MyReceiver extends BroadcastReceiver {
intent3.setClass(context, MemberOrderDetailsActivity.class); intent3.setClass(context, MemberOrderDetailsActivity.class);
context.startActivity(intent3); context.startActivity(intent3);
break; break;
case "6":
if (jsonObject.has("url") && jsonObject.has("title")) {
context.startActivity(MainActivity.getIntent(context));
intent3.putExtra("title", jsonObject.getString("title"));
intent3.putExtra("url", jsonObject.getString("url"));
intent3.setClass(context, WebViewActivity.class);
context.startActivity(intent3);
}
break;
default: default:
intent3.setClass(context, MainActivity.class); intent3.setClass(context, MainActivity.class);
context.startActivity(intent3); context.startActivity(intent3);
...@@ -224,5 +247,4 @@ public class MyReceiver extends BroadcastReceiver { ...@@ -224,5 +247,4 @@ public class MyReceiver extends BroadcastReceiver {
} }
return false; return false;
} }
} }
...@@ -90,4 +90,8 @@ public class Cookie { ...@@ -90,4 +90,8 @@ public class Cookie {
public static void clear(Context context) { public static void clear(Context context) {
getPreference().edit().clear().commit(); getPreference().edit().clear().commit();
} }
public static void clearStringValue(String key) {
getPreference().edit().remove(key);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment