我正在創建一個應用程序,需要在開始顯示活動之前首先設置一些設置 。 我希望應用程序檢查包含這些設置的首選項文件是否存在,如果存在,請移至 特定活動或保留在主要活動中(因爲設置 活動是我的主要活動)。如果某些條件滿足,在啓動時啓動備用活動
我試圖在啓動時使用startactivty(),但它示出了用於幾分之一秒的設置 菜單上移動到顯示 活動之前。
我應該怎麼做?
我嘗試下面的代碼:
super.onCreate(savedInstanceState); setContentView(R.layout.main); SharedPreferences prefsfile = getSharedPreferences("myfile",0); if(prefsfile!=null & Timetablledisplay.flag==0){ Intent i=new Intent(ProjectBunkitActivity.this,Timetablledisplay.class); startActivity(i); }
0
A
回答
1
對於這個問題的潛在解決方法的選擇將採取稍微不同的方法:
而不是發射到設置,然後決定無論是否要進入Timetablleddisplay活動,您都可以從一個空白活動開始,只是簡單地決定要啓動哪個活動。
的活動可能是這樣的:
super.onCreate(savedInstanceState);
SharedPreferences prefsfile = getSharedPreferences("myfile",0);
if(prefsfile!=null && Timetablledisplay.flag==0){
Intent i=new Intent(CURRENT.this,Timetablledisplay.class);
startActivity(i);
finish();
}
else
{
Intent i=new Intent(CURRENT.this,ProjectBunkitActivity.class);
startActivity(i);
finish();
}
2
你應該在onCreate()
新Activity
(加finish()
)的LAUNCHER
Activity
呼叫startActivity()
需要時調用setContentView()
之前。這樣,新的Activity
將在嘗試膨脹任何佈局之前在「幕後」啓動。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences prefs = getSharedPreferences("myFile", 0);
if(prefs != null && ActivityOne.flag == 0) {
Intent i = new Intent(this, ActivityOne.class);
startActivity(i);
} else {
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
}
finish();
}
相關問題
- 1. 只有在滿足某些條件時才啓動asp.net TextChangedEvent?
- 2. 如何在條件滿足時自動啓動Sql語句?
- 3. 在某些設備上啓動活動時發生崩潰
- 4. ANR在某些設備上啓動活動時
- 5. 啓動在設備啓動時啓動活動的服務
- 6. 重新啓動/退出功能,如果條件滿足
- 7. 無法在某些設備上啓動android活動
- 8. android條件啓動活動
- 9. 啓動時啓動活動
- 10. Android - 無法在設備啓動時自動啓動活動?
- 11. 當滿足一些php條件時動態激活菜單
- 12. 調用方法重新啓動,如果條件滿足,而不使用循環
- 13. 如果條件滿足,如何去android的另一個活動?
- 14. 條件滿足時禁用動畫jQuery
- 15. 按計劃啓動winforms應用程序 - 是否滿足條件?
- 16. 如何僅在滿足條件時開始活動
- 17. jquery ui滑塊,如果滿足某些條件,請停止滑動
- 18. 在活動開啓時啓動服務
- 19. 啓動時的啓動活動
- 20. 如何在PhoneGap應用啓動時啓動Android活動?
- 21. 啓動登錄活動的條件
- 22. 根據條件循環啓動活動
- 23. 在第一次啓動小部件時啓動活動
- 24. Wordpress只有在某些條件滿足時才添加動作和過濾器
- 25. Android應用無法在啓動活動後啓動活動
- 26. jQuery - 如何在滿足某些條件時調用ajax
- 27. 如果進程重新啓動,哪些活動將在前端?
- 28. 如果其他列滿足某些條件,則使用awk gensub
- 29. 如果某些條件在mysql中滿足,則計數兩次
- 30. BroadcastReceiver在啓動時無條件啓動服務,無需啓動應用程序
發佈您的代碼。你早些時候嘗試過什麼? – user370305
您在調用'startActivity(i)'關閉當前活動後是否嘗試添加'finish()'標記? – gkiar
代碼運行良好,但我需要啓動TimetableDisplay活動而不顯示設置活動 – jaisonDavis