1.解决ad72e265c1提交导致从二级菜单进入第三方应用按返回退出失败,多次按返回键和Home键二级菜单抛空指针Launcher界面奔溃或卡死异常的问题
This commit is contained in:
@@ -30,7 +30,9 @@ public class CategoryActivity extends FragmentActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FragmentManager.init(this,this);
|
||||
if(FragmentManager.getInstance()==null){
|
||||
FragmentManager.init(this,this);
|
||||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@@ -45,6 +47,7 @@ public class CategoryActivity extends FragmentActivity {
|
||||
if(bundle!=null){
|
||||
mAction=bundle.getString("action");
|
||||
}
|
||||
if(FragmentManager.getInstance()==null) return;
|
||||
if(RecommendFragment.ACTION.equals(mAction)){
|
||||
showFragment(FragmentManager.getInstance().getFragmentByTag(FragmentManager.RECOMMEND_APPS_TAG),false);
|
||||
}else if(MusicFragment.ACTION.equals(mAction)){
|
||||
@@ -76,7 +79,9 @@ public class CategoryActivity extends FragmentActivity {
|
||||
|
||||
@Override
|
||||
public void setFragmentsDisableRefreshDataFlag() {
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
if(FragmentManager.getInstance()!=null){
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,6 +91,7 @@ public class CategoryActivity extends FragmentActivity {
|
||||
|
||||
@Override
|
||||
public void onDoneEvents(MessageEvent messageEvent) {
|
||||
if(FragmentManager.getInstance() == null) return;
|
||||
if(MusicFragment.ACTION.equals(messageEvent.action)){
|
||||
showFragment(FragmentManager.getInstance().getFragmentByTag(FragmentManager.MUSIC_APPS_TAG),false);
|
||||
}else if(RecommendFragment.ACTION.equals(messageEvent.action)){
|
||||
@@ -109,7 +115,9 @@ public class CategoryActivity extends FragmentActivity {
|
||||
private void onResumeResetDisableFreshDataFlag() {
|
||||
if(SharedPreferencesUtil.getSharePrefrencesBoolean(this,SharedPreferencesUtil.CONFIG_RESET_DISABLE_FRESHDATA_FLAG)){
|
||||
SharedPreferencesUtil.setSharePrefrencesBoolean(this,SharedPreferencesUtil.CONFIG_RESET_DISABLE_FRESHDATA_FLAG,false);
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
if(FragmentManager.getInstance()!=null){
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
}
|
||||
if(currentFragment!=null){
|
||||
currentFragment.onResumeFragment(new MessageEvent());
|
||||
}
|
||||
@@ -143,7 +151,9 @@ public class CategoryActivity extends FragmentActivity {
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
FragmentManager.getInstance().destory();
|
||||
if(FragmentManager.getInstance()!=null){
|
||||
FragmentManager.getInstance().destory();
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -154,18 +164,24 @@ public class CategoryActivity extends FragmentActivity {
|
||||
LogUtils.loge("onKeyDown===>"+keyCode);
|
||||
|
||||
if(keyCode==KeyEvent.KEYCODE_BACK){
|
||||
if(currentFragment.onKeyDown(keyCode,event)){
|
||||
if(currentFragment!=null&¤tFragment.onKeyDown(keyCode,event)){
|
||||
return true;
|
||||
}else {
|
||||
//currentFragment.resetDisableRefreshDataFlag();
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
if(FragmentManager.getInstance()!=null){
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
}
|
||||
return super.onKeyDown(keyCode,event);
|
||||
}
|
||||
}
|
||||
if(keyCode==KeyEvent.KEYCODE_HOME){
|
||||
LogUtils.loge("onKeyDown===>KEYCODE_HOME");
|
||||
currentFragment.onDetach();
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
if(currentFragment!=null){
|
||||
currentFragment.onDetach();
|
||||
}
|
||||
if(FragmentManager.getInstance()!=null){
|
||||
FragmentManager.getInstance().pressBackUpdateAllFragmentDisableRefreshDataFlag();
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode,event);
|
||||
|
||||
|
||||
@@ -34,8 +34,9 @@ public class MyApplication extends Application {
|
||||
logCrash(throwable);
|
||||
|
||||
// 可选:重启应用或结束进程
|
||||
restartApp();
|
||||
//restartApp();
|
||||
android.os.Process.killProcess(android.os.Process.myPid());
|
||||
System.exit(10);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -94,8 +94,10 @@ public class AppsFragment extends CategoryFragment {
|
||||
List<AppBean> appBeanList = (List<AppBean>) data;
|
||||
// 创建过滤后的列表
|
||||
List<AppBean> filteredList = new ArrayList<>();
|
||||
String selfPackageName = FragmentManager.getInstance().getPackageName();;
|
||||
|
||||
String selfPackageName = "com.droidlogic.mboxlauncher";
|
||||
if(FragmentManager.getInstance()!=null){
|
||||
selfPackageName = FragmentManager.getInstance().getPackageName();
|
||||
}
|
||||
for (AppBean appBean : appBeanList) {
|
||||
// 跳过自身应用
|
||||
if (appBean.getPackageName().equals(selfPackageName) || appBean.getPackageName().equals("com.android.traceur")) {
|
||||
|
||||
Reference in New Issue
Block a user