我正在爲android應用程序實現splashscreen。我只想在應用程序新啓動時顯示一次splashscreen。在完成一些工作之後,我想繼續使用該應用。如果用戶然後按下後退按鈕,我不希望它返回到閃屏,我只想要退出該應用程序。我怎樣才能以最好的方式實現這一點?我如何清除第一個活動的後臺。Android splashscreen backstack
回答
當你要在啓動畫面後的第二個活動,調用finish()
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
if (preferences.getBoolean("firstTime", true)) {
// Show splash screen
// Wait a few seconds.
} else {
// Nothing to do here. Go straight to the second activity.
}
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(
getSupportActivity()).edit();
editor.putBoolean("firstTime", false);
editor.commit();
startActivity(MainActivity.this, ...)
finish();
當用戶按壓背部通過這種方式,並且不會有堆棧中的任何活動。
使用共享preeferences在Android和存儲值第1次..從第二次檢查,如果存在價值不要顯示啓動畫面
編輯的喜好跟隨this
對於您應該使用SharedPreferences,
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("first_time", false))
{
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("first_time", true);
editor.commit();
Intent i = new Intent(splash.this, otherSplash.class);
this.startActivity(i);
this.finish();
}
else
// Not firsttime Direct it as you wish
}
這是你的錯?爲什麼然後它是downvoted –
如果您想要在啓動應用時第一次顯示啓動畫面, 然後你可以使用上面的共享偏好解決方案。 但我想你想通過以下情況:
- 你開始的應用程序,你得到啓動畫面。
- 然後你瀏覽應用程序。
- 然後你來到你的應用程序的主屏幕。
- 然後你想退出,但閃屏來。
如果您有這個問題,那麼你需要完成閃屏 當你開始家庭活動,並在結束時,您需要註銷或結束應用主活動。 也嘗試在Android清單中的啓動畫面活動選項卡中的android:launchMode="singleTask"
。
嗨,試試這個代碼它會幫助你,但它會顯示飛濺,每當你打開應用程序。
public class spash_scr extends Activity {
ImageView t;
//LoginButton b;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.spash_scr);
// bm1=drawable.shineme;
t = (ImageView) findViewById(R.id.textView1);
t.setImageResource(R.drawable.shineme);
RotateAnimation r = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
0.5f);
// r.setStartOffset(1000);
r.setDuration(2000);
r.setFillAfter(true);
t.startAnimation(r);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent i = new Intent(spash_scr.this, MainActivity.class);
startActivity(i);
finish();
}
}, 3000);
}
你是不是在具體行爲明確,所以這裏有一些選擇:
答:你希望它每次的任務(應用程序)顯示啓動活動重新啓動,這樣因爲電話重啓後,用戶手動關閉任務,或者Android出於內存原因放棄它。 (這通常用於品牌或許可徽標。)在這些情況下,從主要活動的onCreate()啓動splash,然後單擊Finish()啓動屏幕以允許用戶返回到主視圖。這種導航返回不會使飛濺活動回來,因爲它不在導航堆棧中了。 B:您希望在安裝後第一次啓動應用程序時顯示啓動畫面,但不會再次顯示。 (通常用於'歡迎'或'開始'幫助視圖。)使用此處的其他答案或Using Shared Preferences文檔中所述的SharedPreference設置。在它應該顯示飛濺的情況下,我仍然建議選項A以最簡單的方式在首次啓動後首次解散後不再顯示啓動畫面。
C:甚至更多,未知的複雜導航?瞭解Tasks and Back Stack,你可以讓它做任何你想做的事情。
打開新的活動後this.finish();
你應該做
Intent intent = new Intent(this, HomeActivity.class);
startActivity(intent);
this.finish();
- 1. Android SplashScreen
- 2. Android:片段backStack
- 3. android activity backstack management
- 4. Android Reorder Fragment Backstack
- 5. trigger.io splashscreen for android
- 6. Android VideoView SplashScreen
- 7. 處理android的backstack
- 8. Android GCM通知Backstack
- 9. Android peek backstack without popping
- 10. 如何使用android Fragment backstack?
- 11. Android:切換片段和Backstack
- 12. Android片段導航和backstack
- 13. FragmentManager backstack
- 14. AsyncTask運行時的Android Splashscreen
- 15. android:如何實現splashscreen
- 16. 如何隱藏PhoneGap Android SplashScreen?
- 17. Backstack上的NullpointerException
- 18. YouTubePlayerFragment backstack
- 19. Java SplashScreen
- 20. vb.net splashscreen
- 21. Android:減少BackStack內存使用量
- 22. 如何將視圖添加到backstack(android)?
- 23. BackStack中的完成活動 - Android
- 24. 清除Android預蜂窩中的backstack?
- 25. Android - 在ViewPager中替換片段的Backstack
- 26. 最大BackStack大小在android中
- 27. Android碎片不叫調試Backstack
- 28. Android - 如何顯示Backstack碎片
- 29. Android - 在backStack中限制片段數量?
- 30. Android BackStack清除,但保持根
但我只是想顯示啓動畫面一次。如果用戶關閉應用程序並返回,我希望他直接進行第二個活動。 – AlexanderNajafi
使用共享偏好 –