拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
1.使用replace,替換當前的fragment2.使用add 和hide 方法,要顯示哪個就顯示哪個,其他的則隱藏即可,這樣相比於第一種在每次切換時不用每次都去載入一次數據,但是記憶體消耗上稍大
會載入目前的fragment 和其相鄰的Fragment為viewpager滑動做準備
只載入目前的Fragment
建議在選擇切換策略時選擇第二種
你的1,2問題你完全可以自己打Log實現查看,這樣以後印象深刻,更有效果。 至於刷新的不知道你是怎麼樣的函數,最後一個其實只要在onKeyDown中判斷,你把這段程式碼運用上去應該沒什麼問題了:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //防止按一次退出 if (System.currentTimeMillis() - mExitTime > 2000) { ToastUtils.showShort("再按一次回到桌面"); mExitTime = System.currentTimeMillis(); } else { finish(); } return true; } return super.onKeyDown(keyCode, event); }
finish只是結束目前的activity,讓你的所有activity都繼承下面這個activity就能實現你想要的效果。當然還有其他方法就得靠自己查了。
public class BaseActivity extends Activity { private long exitTime; BroadcastReceiver exitReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(ExitUtils.EXIT)) { finish(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); IntentFilter filter = new IntentFilter(); filter.addAction(ExitUtils.EXIT); this.registerReceiver(exitReceiver, filter); exitTime = System.currentTimeMillis(); } @Override protected void onDestroy() { super.onDestroy(); this.unregisterReceiver(exitReceiver); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { Intent exitIntent = new Intent(); exitIntent.setAction(ExitUtils.EXIT); getApplicationContext().sendBroadcast(exitIntent); } return true; } return false; } }
fragment 切換有兩種策略
1.使用replace,替換當前的fragment
2.使用add 和hide 方法,要顯示哪個就顯示哪個,其他的則隱藏即可,這樣相比於第一種在每次切換時不用每次都去載入一次數據,但是記憶體消耗上稍大
fragment+viewpager
會載入目前的fragment 和其相鄰的Fragment為viewpager滑動做準備
RadioButton
只載入目前的Fragment
建議在選擇切換策略時選擇第二種
你的1,2問題你完全可以自己打Log實現查看,這樣以後印象深刻,更有效果。
至於刷新的不知道你是怎麼樣的函數,最後一個其實只要在onKeyDown中判斷,你把這段程式碼運用上去應該沒什麼問題了:
finish只是結束目前的activity,讓你的所有activity都繼承下面這個activity就能實現你想要的效果。當然還有其他方法就得靠自己查了。