有关于一些 Android list 和 Activity 协调的问题。我创建了一个直接进入主要 Activity 的应用程序,用户可以从中与应用程序交互。我想创建一个显示应用程序的简单标题的 Activity (可能带有图片,但那是稍后的事了......),然后在几秒钟的延迟后切换到主要 Activity 。这是我到目前为止所拥有的...
标题 Activity :
public class TitleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_title);
try {
Thread.sleep(3000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
}
...
list 文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="khandy.application.convertible"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="khandy.application.convertible.TitleActivity"
android:label="@string/title_activity_title" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="khandy.application.convertible.MainActivity"
android:label="@string/app_name" >
</activity>
...
启动时发生的情况是,当发生 3 秒延迟时,我的 View /小部件都没有显示在 title_activity 上,然后切换到主 Activity。然后,当我按下 android 后退按钮时,我会退回到标题 Activity ,该 Activity 与 View /小部件一起运行。我相当确定 View /小部件未出现与我非常粗糙的多线程有关...
所以,我的问题是:
- 如何在标题 Activity 时显示我的 View /小部件 是第一次打开吗?
- 如何将主要 Activity 设置为在以下情况下简单地退出应用程序: 返回按钮被按下?也就是说,我如何使用后退按钮 返回 Android 主屏幕的主要 Activity?
谢谢!
最佳答案
在mainactivity启动后完成titleactivity,这解决了问题2.使用
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();
对于问题1,使用以下代码
public class SplashScreen extends Activity{
private SplashHandler mSplashHandler = new SplashHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
mSplashHandler.sendEmptyMessageDelayed(SplashHandler.TIMER_EXPIRED, 5);
}
class SplashHandler extends Handler {
static final int TIMER_EXPIRED = 100;
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case TIMER_EXPIRED:
Intent in = new Intent(SplashScreen.this, nextActivity.class);
startActivity(in);
finish();
break;
default:
break;
}
}
}
@Override
protected void onDestroy() {
mSplashHandler = null;
super.onDestroy();
}
}
关于java - 创建标题页 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19526251/