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