Activity Lifecycle:startActivityForResult 按Back Button
在 Android 开发中,startActivityForResult
是一个用于启动另一个 Activity 并向其传递数据的方法。当用户按 Back Button 时,系统会回退到上一个 Activity。在回退过程中,系统会自动调用 onPause()
方法,停止当前 Activity 的运行。
为了在按 Back Button 时执行某些操作,可以重写 onPause()
方法并添加逻辑。例如,可以在 onPause()
中保存数据或执行一些清理操作。
以下是一个示例代码,演示如何在按 Back Button 时执行某些操作:
// 导入所需库
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 启动另一个 Activity
startActivityForResult(new Intent(MainActivity.this, SecondActivity.class), 0);
}
});
}
@Override
protected void onPause() {
super.onPause();
// 在按 Back Button 时执行操作
if (mButton != null) {
mButton.setText("Back");
}
}
@Override
protected void onResume() {
super.onResume();
// 在按 Back Button 时更新按钮文本
if (mButton != null) {
mButton.setText("Forward");
}
}
}
在上述代码中,我们实现了两个按钮,一个用于启动另一个 Activity,一个用于在按 Back Button 时执行操作。在 onPause()
方法中,我们检查 mButton
是否为 null
,如果是,则说明没有按钮正在被点击,因此我们可以执行一些清理操作。在按 Back Button 时,系统会调用 onPause()
方法,因此我们可以在这里更新按钮的文本。在 onResume()
方法中,我们检查 mButton
是否为 null
,如果是,则说明按钮已经被点击,因此我们可以更新按钮的文本。
注意,在按 Back Button 时,系统只会调用 onPause()
方法,而不会调用 onStop()
方法。因此,如果需要在按 Back Button 时执行一些清理操作,可以在 onPause()
方法中执行。
领取专属 10元无门槛券
手把手带您无忧上云