admin 管理员组

文章数量: 887021


2023年12月25日发(作者:曲线拟合函数)

BaseActivity和TopActivity

介绍

在Android开发中,Activity是应用程序的核心组件之一。它负责管理应用程序的用户界面,并处理与用户交互的逻辑。BaseActivity和TopActivity是两个常见的Activity类别,它们在Android应用程序中扮演不同的角色。

BaseActivity

BaseActivity是一个抽象类,用于定义应用程序中所有Activity共享的通用行为和功能。它可以被其他具体的Activity类继承,并提供一些通用方法和属性,以减少重复代码并提高代码复用性。

BaseActivity通常包含以下几个主要方面:

生命周期管理

BaseActivity可以重写生命周期方法,并在需要时执行特定的操作。例如,在onCreate方法中可以进行一些初始化操作,在onDestroy方法中可以释放资源。

public abstract class BaseActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

// 初始化操作

}

@Override

protected void onDestroy() {

roy();

// 释放资源

}

}

全局配置

BaseActivity可以设置全局配置,例如屏幕方向、主题样式等。这样,在具体的子类中就不需要重复设置这些配置了。

public abstract class BaseActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setRequestedOrientation(_ORIENTATION_PORTRAIT);

//

强制竖屏显示

setTheme(me);

// 设置主题样式

}

}

公共方法

BaseActivity可以定义一些公共方法,供子类调用。这些方法可以是与业务逻辑相关的,也可以是与界面交互相关的。

public abstract class BaseActivity extends AppCompatActivity {

protected void showToast(String message) {

xt(this, message, _SHORT).show();

}

}

事件处理

BaseActivity可以处理一些通用的事件,例如返回按钮点击事件、菜单选项点击事件等。子类可以选择性地重写这些方法来实现自定义的行为。

public abstract class BaseActivity extends AppCompatActivity {

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (mId()) {

case :

finish();

// 点击返回按钮时关闭当前Activity

return true;

default:

return onsItemSelected(item);

}

}

}

TopActivity

TopActivity是指当前位于栈顶的Activity。在Android中,每个应用程序都有一个任务栈(Task Stack),用于管理所有活动的Activity。

TopActivity通常需要实现以下功能:

获取TopActivity

通过使用ActivityManager类和getRunningTasks方法,我们可以获取到当前正在运行的任务栈,并从中获取到栈顶的Activity。

public class TopActivityUtil {

public static String getTopActivity(Context context) {

ActivityManager activityManager = (ActivityManager) temService(TY_SERVICE);

List runningTasks = ningTasks(1);

if (runningTasks != null && !y()) {

ComponentName componentName = (0).topActivity;

return ssName();

}

return null;

}

}

监听TopActivity变化

通过使用ActivityLifecycleCallbacks接口,我们可以监听到应用程序中所有Activity的生命周期回调,并在其中判断当前的TopActivity是否发生变化。

public class TopActivityListener implements tyLifecycleCallbacks {

private String topActivity;

@Override

public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

updateTopActivity(activity);

}

@Override

public void onActivityStarted(Activity activity) {

updateTopActivity(activity);

}

@Override

public void onActivityResumed(Activity activity) {

updateTopActivity(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) {

// 不处理

}

private void updateTopActivity(Activity activity) {

if (activity != null && !shing()) {

topActivity = ss().getName();

}

}

}

总结

BaseActivity和TopAcitvity是Android开发中常见的两个概念。BaseAvtivity是一个抽象类,用于定义应用程序中所有Acitvity共享的通用行为和功能。它可以提供一些通用方法、全局配置和事件处理等。而TopAcitvity则是指当前位于栈顶的Acitvity,我们可以通过ActivityManager和ActivityLifecycleCallbacks等方式来获取和监听TopActivity的变化。两者都能够帮助我们更好地管理和控制Android应用程序的行为。


本文标签: 方法 应用程序 通用 事件 例如