2013-10-22 62 views
0

對某些android清單和活動協調有疑問。我創建了一個直接進入主要活動的應用程序,用戶可以從中與應用程序進行交互。我想創建一個顯示應用程序簡單標題的活動(也許用圖片,但是稍後...),然後在幾秒鐘的延遲後切換到主要活動。這裏是我迄今爲止...創建標題頁活動

TitleActivity:

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); 
} 
... 

清單文件:

<?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> 
... 

在啓動時會發生什麼情況是,沒有我的意見/部件的表現上,而在title_activity 3秒延遲發生,然後切換到主要活動。然後,當我按下android後退按鈕時,我將退回到標題活動中,該活動與視圖/小部件一起運行。我相當肯定沒有出現的意見/部件有事情做與我的非常粗糙的多線程...

所以,我的問題是:

  1. 我如何得到我的意見/小部件出現當標題活動 第一次打開?
  2. 如何設置主要活動以簡單退出應用程序,當按下 後退按鈕時?也就是說,我怎樣才能使用 主要活動中的後退按鈕返回到Android主屏幕?

謝謝!你想有一個閃屏

回答

1

完成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(); 
} 
} 
1

我想:mainactivity推出後

public class TitleActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_title); 



     new Handler().postDelayed(new Runnable(){ 
      @Override 
      public void run() { 

       Intent intent = new Intent(TitleActivity.this,MainActivity.class); 
       TitleActivity.this.startActivity(intent); 
       TitleActivity.this.finish(); 
      } 
     }, 3000); 

    } 
}