实现方式是在Activity设置回调接口,Fragment实现接口。
1.Activity设置接口
private ShoppingCanGoBackListent shoppingCanGoBackListent;
public interface ShoppingCanGoBackListent {
boolean shoppingCanGoBack();
}
public void setShoppingCanGoBackListent(ShoppingCanGoBackListent shoppingCanGoBackListent) {
this.shoppingCanGoBackListent = shoppingCanGoBackListent;
}
2.Fragment实现接口
mCompMainActivity.setShoppingCanGoBackListent(new HomeBaseActivity.ShoppingCanGoBackListent() {
@Override
public boolean shoppingCanGoBack() {
if (webView.canGoBack()) {
webView.goBack();
return true;
} else {
return false;
}
}
});
mCompMainActivity、HomeBaseActivity:寄主Activity对象
3.Activity 实现双击退出的逻辑
private boolean mIsExit;
public void doubleClickExit() {
if (mIsExit) {
KKApplication application = (KKApplication) getApplication();
List<Activity> activityList = application.activityList;
if (activityList != null && activityList.size() != 0) {
for (Activity activity :
activityList) {
activity.finish();
}
}
this.finish();
} else {
Toast.makeText(this, "再按一次返回退出小蜂找事", Toast.LENGTH_SHORT).show();
mIsExit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mIsExit = false;
}
}, 2000);
}
}
4.Activity 重写onKeyDown监听返回键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (shoppingCanGoBackListent != null) {
boolean shoppingCanGoBack = shoppingCanGoBackListent.shoppingCanGoBack();
if (shoppingCanGoBack) {
} else {
doubleClickExit();
}
return true;
}
doubleClickExit();
return true;
}
return super.onKeyDown(keyCode, event);
}
完美。。。