public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity implements BaseView{ public P presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(initLayout()); initView(); presenter = initPresenter(); if (presenter!=null){ presenter.attchView(this); } initDate(); } @Override protected void onDestroy() { super.onDestroy(); if (presenter!=null){ presenter.deatchView(); } } protected abstract int initLayout(); protected abstract void initView(); protected abstract void initDate(); protected abstract P initPresenter(); }这段代码什么意思
时间: 2024-02-14 14:35:08 浏览: 200
这段代码定义了一个 BaseActivity 类,它是一个抽象类并且继承自 AppCompatActivity 类,同时实现了 BaseView 接口。其中:
1. `public P presenter`: 定义了一个泛型 P 类型的变量 presenter,用于持有一个 Presenter 对象。
2. `protected void onCreate(Bundle savedInstanceState)`: 重写了 AppCompatActivity 中的 onCreate 方法,在 Activity 创建时进行初始化操作,包括设置布局、初始化视图、初始化 Presenter 和数据等。
3. `protected void onDestroy()`: 重写了 AppCompatActivity 中的 onDestroy 方法,在 Activity 销毁时进行资源释放操作,包括解绑 Presenter。
4. `protected abstract int initLayout()`: 抽象方法,用于设置 Activity 的布局。
5. `protected abstract void initView()`: 抽象方法,用于初始化 Activity 的视图。
6. `protected abstract void initDate()`: 抽象方法,用于初始化 Activity 的数据。
7. `protected abstract P initPresenter()`: 抽象方法,用于初始化 Presenter。
其中,`P extends BasePresenter` 表示泛型 P 必须是 BasePresenter 或其子类,这是为了保证 Presenter 的通用性和灵活性。使用泛型的好处是可以让这个 BaseActivity 适用于不同的 Presenter,使得逻辑更加通用和灵活。
综上,这段代码的作用是定义了一个 BaseActivity 基类,用于封装一些通用的 Activity 操作,包括设置布局、初始化视图、初始化 Presenter 和数据等。通过泛型,使得 BaseActivity 可以适用于不同的 Presenter 类型,提高了代码的复用性和可维护性。
阅读全文