最近公司打算把行程详情中修改一下,进入行程详情就是内置导航,然后在里面操作,这种更方便司机,大概简单了解了一下是可以实现的,直接使用高德的导航组件就能完美实现,不过发现了一个问题是行程结束要关闭内置导航,想了段时间,也查阅了资料发现使用ActivityLifecycleCallbacks可是实现这个需求,关闭sdk中的activity。
public class ActivityManagerUtils implements Application.ActivityLifecycleCallbacks {
private Activity activity;
public void registerActivityLifecycleCallbacks() {
MyApplication.getInstance().registerActivityLifecycleCallbacks(this);
}
public void closeAdActivity() {
if (activity != null) {
activity.finish();
}
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if(activity instanceof com.amap.api.navi.AmapRouteActivity) {
this.activity = activity;
}
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
总的来说就是 注册 ActivityLifecycleCallbacks 监听应用内所有 Activity的生命周期。
本文介绍了如何在Android应用中巧妙地关闭SDK中的Activity。针对行程结束时需要关闭内置导航的问题,通过注册ActivityLifecycleCallbacks监听并管理所有Activity的生命周期,从而实现这一目标。

306

被折叠的 条评论
为什么被折叠?



