activity_act_jump.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" >
<Button
android:id="@+id/btn_act_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="跳到下个页面"
android:textColor="#000000"
android:textSize="17sp" />
<TextView
android:id="@+id/tv_life"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="left"
android:textColor="#000000"
android:textSize="17sp" />
</LinearLayout>
DateUtil.java
package com.example.third;
import android.annotation.SuppressLint;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
public static String getNowDateTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(new Date());
}
public static String getNowTime() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
return sdf.format(new Date());
}
public static String getNowTimeDetail() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");
return sdf.format(new Date());
}
}
MainActivity.java
package com.example.third;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private final static String TAG = "ActJumpActivity";
private TextView tv_life; // 声明一个文本视图对象
private String mStr = "";
private void refreshLife(String desc) { // 刷新生命周期的日志信息
Log.d(TAG, desc);
mStr = String.format("%s%s %s %s\n", mStr, DateUtil.getNowTimeDetail(), TAG, desc);
tv_life.setText(mStr);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act_jump);
findViewById(R.id.btn_act_next).setOnClickListener(this);
// 从布局文件中获取名叫tv_life的文本视图
tv_life = findViewById(R.id.tv_life);
refreshLife("onCreate");
}
@Override
protected void onStart() {
refreshLife("onStart");
super.onStart();
}
@Override
protected void onStop() {
refreshLife("onStop");
super.onStop();
}
@Override
protected void onDestroy() {
refreshLife("onDestroy");
super.onDestroy();
}
@Override
protected void onRestart() {
refreshLife("onRestart");
super.onRestart();
}
@Override
protected void onPause() {
refreshLife("onPause");
super.onPause();
}
@Override
protected void onResume() {
refreshLife("onResume");
super.onResume();
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_act_next) {
// 准备跳到下个活动页面ActNextActivity
Intent intent = new Intent(this, ActNextActivity.class);
// 期望接收下个页面的返回数据
startActivityForResult(intent, 0);
}
}
}
activity_act_next.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" >
<Button
android:id="@+id/btn_act_pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="返回上个页面"
android:textColor="#000000"
android:textSize="17sp" />
<TextView
android:id="@+id/tv_life"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="left"
android:textColor="#000000"
android:textSize="17sp" />
</LinearLayout>
ActNextActivity.java
package com.example.third;
import android.app.Activity;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class ActNextActivity extends AppCompatActivity implements OnClickListener {
private final static String TAG = "ActNextActivity";
private TextView tv_life; // 声明一个文本视图对象
private String mStr = "";
private void refreshLife(String desc) { // 刷新生命周期的日志信息
Log.d(TAG, desc);
mStr = String.format("%s %s %s %s\n", mStr, DateUtil.getNowTimeDetail(), TAG, desc);
tv_life.setText(mStr);
}
@Override
protected void onCreate(Bundle savedInstanceState) { // 创建活动页面
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act_next);
findViewById(R.id.btn_act_pre).setOnClickListener(this);
// 从布局文件中获取名叫tv_life的文本视图
tv_life = findViewById(R.id.tv_life);
refreshLife("onCreate");
}
@Override
protected void onStart() { // 开始活动页面
refreshLife("onStart");
super.onStart();
}
@Override
protected void onStop() { // 停止活动页面
refreshLife("onStop");
super.onStop();
}
@Override
protected void onResume() { // 恢复活动页面
refreshLife("onResume");
super.onResume();
}
@Override
protected void onPause() { // 暂停活动页面
refreshLife("onPause");
super.onPause();
}
@Override
protected void onRestart() { // 重启活动页面
refreshLife("onRestart");
super.onRestart();
}
@Override
protected void onDestroy() { // 销毁活动页面
refreshLife("onDestroy");
super.onDestroy();
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_act_pre) {
Intent intent = new Intent(); // 创建一个新意图
intent.putExtra("life", mStr); // 把字符串参数塞给意图
setResult(Activity.RESULT_OK, intent); // 携带意图返回前一个页面
finish(); // 关闭当前页面
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.third">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActNextActivity" />
</application>
</manifest>