2014-08-30 30 views
1

以下是我的活動Mod_1_1_b。啓動時,此活動在3秒後將用戶轉移到Mod_1_1_c, Mod_1_1_b有一個用於轉到其他活動(主)的按鈕,但每當我按下該按鈕時,它都會首先將我帶到主要活動,然後立即啓動Mod_1_1_c。我曾嘗試調用完成();但沒有工作,看起來已經在後臺啓動了。因爲意圖在後臺啓動而無法返回android

package com.example.abc; 

import android.app.Activity; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.os.Handler; 
import android.view.View; 

public class Mod_1_1_b extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_mod_1_1_b); 

     final MediaPlayer mp1 = MediaPlayer 
       .create(getBaseContext(), R.raw.yolo); // -< 
     mp1.start(); 
     Handler mHandler = new Handler(); 
     mHandler.postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       Intent startActivity = new Intent(Mod_1_1_b.this, 
         Mod_1_1_c.class);// -< 
       startActivity(startActivity); 
       overridePendingTransition(R.anim.slide_right_to_left_1, 
         R.anim.slide_right_to_left_2); 
       finish(); 
      } 

     }, 3000L); 

    } 

    public void back(View view) { 
     Intent intent = new Intent(this, Mod_1_1AtoZ.class); 
     startActivity(intent); 
     overridePendingTransition(R.anim.slide_left_to_right_1, 
       R.anim.slide_left_to_right_2); 
     finish(); 
    } 

    @Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
    } 

} 

XML

<RelativeLayout 
     android:layout_width="290dip" 
     android:layout_height="290dip" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@drawable/b_tile" > 
    </RelativeLayout> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:onClick="back" 
     android:text="Back" /> 

</RelativeLayout> 
+0

,其中位於該按鈕後它的代碼 – 2014-08-30 03:03:20

+0

@Rod_Algonquin我剛纔貼吧 – 2014-08-30 03:09:09

回答

1
it first takes me to main activity and then immediately launches Mod_1_1_c 

那是因爲你設置你按下那個按鈕,它會改變活動後您的處理程序,以在3秒內執行這樣,但它仍然會執行你的處理程序和更改爲活動Mod_1_1_c

解決方案:

在您的按鈕back中,您需要取消處理程序以在更改活動後停止它的執行。

樣本:

public void back(View view) { 
    timeoutHandler.removeCallbacks(your_runnable); 
    Intent intent = new Intent(this, Mod_1_1AtoZ.class); 
    startActivity(intent); 
    overridePendingTransition(R.anim.slide_left_to_right_1, 
      R.anim.slide_left_to_right_2); 
    finish(); 
} 

確保您RunnableHandler有它的全局實例。

編輯:

public class Mod_1_1_b extends Activity { 


    Handler mHandler; //global instance 
    Runnable your_runnable; //global instance 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_mod_1_1_b); 

     final MediaPlayer mp1 = MediaPlayer 
       .create(getBaseContext(), R.raw.yolo); // -< 
     mp1.start(); 
     mHandler = new Handler(); 
     your_runnable = new Runnable() { 

      @Override 
      public void run() { 
       Intent startActivity = new Intent(Mod_1_1_b.this, 
         Mod_1_1_c.class);// -< 
       startActivity(startActivity); 
       overridePendingTransition(R.anim.slide_right_to_left_1, 
         R.anim.slide_right_to_left_2); 
       finish(); 
      } 

     }; 

     mHandler.postDelayed(your_runnable , 3000L); 

    } 

    public void back(View view) { 
     mHandler.removeCallbacks(your_runnable); 
     Intent intent = new Intent(this, Mod_1_1AtoZ.class); 
     startActivity(intent); 
     overridePendingTransition(R.anim.slide_left_to_right_1, 
       R.anim.slide_left_to_right_2); 
     finish(); 
    } 

    @Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
    } 

} 
+0

這是很難理解你的答案。請發佈編輯後的問題,這會更容易理解。我將能夠在你的代碼中使用計時器嗎? – 2014-08-30 03:13:50

+0

@ JRE.exe請參閱上面的修改。如果你在3秒之前按下它,它將改變活動到「Mod_1_1AtoZ」,並且不會在之後改變活動。但默認情況下它會在3秒內改變活動 – 2014-08-30 03:19:55

+0

timeoutHandler無法解析 – 2014-08-30 03:21:01

相關問題