编写简易的欢迎页面Activity
—— 记录一下 TimeTask 类的简单使用
1. TimeTask 和 Intent
这节记录一下简易欢迎页面的编写过程。设计思路如下:
如上图所示,本部分的工作一共涉及到两个Activity:WelcomeActivity和MainActivity,前者是欢迎页面,后者是APP的主页,跳转的前提是等待1s。等待打算用TimeTask类实现,跳转用Intent类实现。
TimeTask是Android提供的定时器,由于继承了Runnable接口(如下所示),因此可以实现多线程,在实现TimeTask类时,需要重写抽象方法run(),如下下图所示。
主要程序如下:
TimerTask task = new TimerTask(){
@Override
public void run(){
<span style="white-space:pre"> </span>//要重写的部分
}
};
Timer timer = new Timer();
timer.schedule(task, 1000); //计时1s
Intent 类是Activity要执行操作的一种抽象描述,通常情况下被用于联系上下文环境,比如最长用的就是从当前Activity跳转到另一个Activity。主要的代码如下:
Intent intent = new Intent();
<span style="white-space:pre"> </span>intent.setClass(WelcomeActivity.this, MainActivity.class);
<span style="white-space:pre"> </span>WelcomeActivity.this.startActivity(intent);
<span style="white-space:pre"> </span>finish();
上述代码第一行实例化一个Intent类,得到的Intent类对象赋值给intent句柄;
第二行的setClass()方法定义了当前Activity和接下来要跳转的Activity,也就是出发地和目的地;
第三行的startActivty() 开始下一个Activity;
第四行 finish()的作用是结束当前的Activity。
将上面4行代码复制到重写的run方法里,就能实现等待1s后跳转的功能了。
2. 实现步骤
首先,新
建一个Empty Activity(空白的Activity),命名为Welcome,点击Finish,如下图所示:
新建好Welcome Activity后,再新建一个MainActivity。
在WelcomeActivity中的onCreate()方法中,添加如下代码:
TimerTask task = new TimerTask(){
@Override
public void run(){
Intent intent = new Intent();
intent.setClass(WelcomeActivity.this, MainActivity.class);
WelcomeActivity.this.startActivity(intent);
finish();
}
};
Timer timer = new Timer();//计时1s
timer.schedule(task, 1000);
然后,分别为WelcomActivity和MainActvity设置页面的布局,布局文件分别如下:
activity_welcome:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".WelcomeActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textStyle="bold"
android:textSize="50sp"
android:gravity="center"
android:text="Welcome to Tmp Demo!"/>
</RelativeLayout>
activity_main.xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.a10405.tmp.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Main Activity"/>
</RelativeLayout>
最后,需要修改一下AndroidManifest.xml配置文件,将WelcomeActvity设置为APP的首页,如下所示:
修改后的AndroidManifest.xml如下:
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.a10405.tmp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".WelcomeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--<activity android:name=".WelcomeActivity" />-->
<activity android:name=".MainActivity"></activity>
</application>
</manifest></span>
之后,编译并真机调试了,程序等待1s后会跳转到MainActivity。