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
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应用程序的行为。
版权声明:本文标题:baseactivity topactivity 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703457886h452235.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论