diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java index 53b3136c4a..d02c248b56 100644 --- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java +++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java @@ -23,7 +23,7 @@ public class MainIndependentActivity extends MainActivity { protected void onCreate( @Nullable Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); // 独立app需要在onCreate里面增加处理scheme的情况 - mPresenter.handleSchemeIntent( getIntent() ); + mPresenter.handleSchemeIntent( getIntent(), false ); } @Override diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index 5fb6e38e93..b4629ddcc8 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -334,7 +334,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override protected void onNewIntent( Intent intent ) { super.onNewIntent( intent ); - mPresenter.handleSchemeIntent( intent ); + mPresenter.handleSchemeIntent( intent, true ); } @Override diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java index ace4b835ad..6d3c6a4a66 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java @@ -61,8 +61,8 @@ public class MainPresenter extends Presenter< MainView > { mMsgHandler.sendMessageDelayed( msg, 100 ); } - public void handleSchemeIntent( Intent intent ) { - SchemeIntent.getInstance().handle( intent ); + public void handleSchemeIntent( Intent intent, boolean isOnNewIntent ) { + SchemeIntent.getInstance().handle( intent, isOnNewIntent ); } public void initADAS(){ diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java index bf232742c9..91948e0e15 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java @@ -88,7 +88,12 @@ public class SchemeIntent implements IMogoStatusChangedListener { } - public void handle( Intent intent ) { + /** + * 处理scheme + * @param intent 跳转的intent + * @param isOnNewIntent 根据这个参数判断是从onCreate过来还是从onNewIntent过来,从而可以在{@link #isDelay(Intent, boolean)}里面确定延时逻辑,如果是从onNewIntent过来是不需要延时的 + */ + public void handle( Intent intent, boolean isOnNewIntent ) { if ( intent == null || intent.getData() == null ) { return; } @@ -100,7 +105,7 @@ public class SchemeIntent implements IMogoStatusChangedListener { if ( !mApis.getStatusManagerApi().isMainPageOnResume() ) { long delay = 0L; - if ( isDelay( intent ) ) { + if ( isDelay( intent, isOnNewIntent ) ) { delay = 5_000L; } mNextIntent = new IntentWrapper( intent, delay ); @@ -127,8 +132,8 @@ public class SchemeIntent implements IMogoStatusChangedListener { mNextIntent = null; } - private boolean isDelay(Intent intent ) { - if ( mApis.getStatusManagerApi().isMainPageLaunched() || intent == null || intent.getData() == null ) { + private boolean isDelay(Intent intent, boolean isOnNewIntent ) { + if ( isOnNewIntent || intent == null || intent.getData() == null ) { return false; } Uri target = intent.getData(); @@ -225,7 +230,7 @@ public class SchemeIntent implements IMogoStatusChangedListener { if ( mNextIntent == null ) { return; } - handle( mNextIntent.mIntent ); + handle( mNextIntent.mIntent, false ); }, mNextIntent.mDelay ); } }