介绍
让APP启动后在页面停留2秒,2秒后跳转到新页面。
代码实现
先创建新的Activity和对应的xml布局文件
主要文件结构: – java – MainAcitivity.java – NewAcitivity.java
– layout – acitivity_main.xml – acitivity_new.xml
MainAcitivity.java
最主要的是这个文件,其他的不重要
package com.buxiaju.test1;
import android.widget.TextView;
import android.os.Handler;
import android.content.Intent;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onStop() {
super.onStop();
finish();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
goNextPage();
}
private void goNextPage() {
new Handler().postDelayed(mGoNext, 3000);
}
private Runnable mGoNext = new Runnable() {
@Override
public void run() {
startActivity(new Intent(MainActivity.this, NewActivity.class));
}
};
}
NewAcitivity.java
package com.buxiaju.test1;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class NewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
}
}
两个xml布局
两个布局文件中都只是用了一个线性布局加一个文本控件
acitivity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tv_hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Hello World!" />
</LinearLayout>
acitivity_new.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="新的页面" />
</LinearLayout>
代码解析
①在onResume() 中写跳转页面的代码 ②写一个页面跳转的方法,主要用到了new Handler().postDelayed(mGoNext, 3000); Handler的postDelayed方法。
postDelayed(Runnable接口,延时的时间) 两个参数:①Runnable接口 ②延时的执行Runnable的时间,毫秒
在Runnable中写startActivity(new Intent(MainActivity.this, NewActivity.class)); 进行页面跳转
③最后在onStop() 方法中写让页面销毁的方法finish() ,为了当首页按返回键时是直接回到手机桌面,而不是回到启动页。
效果
打开APP后在这个页面会停留2秒 停留2秒后转到这个页面 下面是动图
|