优化Scheme跳转
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user