深入理解Android Activity的Callback机制

版权申诉
0 下载量 94 浏览量 更新于2024-10-11 收藏 136KB RAR 举报
资源摘要信息:"本压缩包文件名为'Activity_Callback.rar',内容涉及Android开发中与Activity相关的Callback机制。Callback机制是Android编程中的一个重要概念,它允许开发者在特定事件发生时,通过回调函数(Callback)来进行响应。在Android开发中,Activity作为应用界面的一个基本单元,其生命周期中的各种状态变化常常需要我们进行处理和响应,如创建、启动、暂停、恢复、销毁等。通过 Callback机制,开发者可以在Activity状态改变时,执行特定的代码逻辑,以确保应用能够在各种情况下正确运行。 在Android中,Callback通常是通过重写Activity类中的一些生命周期方法来实现的。例如: - onCreate(Bundle savedInstanceState):当Activity被创建时调用,用于初始化Activity。 - onStart():当Activity对用户可见时调用。 - onResume():当Activity准备好与用户交互时调用。 - onPause():当另一个Activity启动时调用,当前Activity暂停。 - onStop():当Activity对用户不再可见时调用。 - onDestroy():当Activity被销毁前调用,通常用于执行清理工作。 - onRestart():当Activity从停止状态重新启动时调用。 这些回调方法提供了在Activity生命周期特定时间点执行代码的机会,使得开发者能够管理资源,保存或恢复状态,以及维护用户界面。正确使用Callback机制对于创建稳定和响应灵敏的应用至关重要。 在Android开发中,处理Callback时,还需要关注Activity栈的行为,了解如何管理多个Activity之间的切换。此外,对于Android 11及以后版本,还需了解新的任务和启动模式,以及如何在新的API级别上处理Activity生命周期。 在实际开发中,Callback不仅可以应用于Activity,还可以在其他组件中使用,如Service、BroadcastReceiver、Fragment等。每个组件都有自己的生命周期以及相应的回调方法,以确保组件在不同状态变化时能够正确处理各种事件。 理解并熟练运用Callback机制,是每个Android开发者的必备技能。通过本压缩包中的相关资料,可以更深入地掌握Activity生命周期中的Callback机制,提高Android应用开发的专业水平。" 请注意,以上信息是根据给定文件信息生成的知识点概要,由于描述部分信息较少,具体内容的理解和应用还需结合实际的Android开发文档和编程实践。

package com.example.ibm; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.google.gson.Gson; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private EditText etHeight; private EditText etWeight; private Button btnCalculate; private TextView tvResult; private OkHttpClient client; private Gson gson; private static final String API_KEY = "d889e63ef7ad041b837dcc1b3ebc5a2b"; private static final String API_URL = "http://apis.juhe.cn/fapig/calculator/weight"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etHeight = findViewById(R.id.et_height); etWeight = findViewById(R.id.et_weight); btnCalculate = findViewById(R.id.btn_calculate); tvResult = findViewById(R.id.tv_result); client = new OkHttpClient(); gson = new Gson(); btnCalculate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String height = etHeight.getText().toString(); String weight = etWeight.getText().toString(); if (height.isEmpty() || weight.isEmpty()) { tvResult.setText("请输入身高和体重"); return; } float h = Float.parseFloat(height); float w = Float.parseFloat(weight); if (h <= 0 || w <= 0) { tvResult.setText("身高和体重必须大于0"); return; } calculateBMI(h, w); } }); }

2023-06-09 上传