解决方案 »

  1.   

    在SubActivity 里面做判断 判断是否MainActivity已经启动,在MainActivity启动onCreate方面里面 设置SharedPreference值。
    SubActivity里面做判断就可以了。如果没有启动 点击Back 就启动MainActivity
      

  2.   

    谢谢@birdsaction的回答,但我用
    mPrefs.edit().putBoolean("MainActivity_IS_OPEN", true).commit();
    设为True,如果用户强行停止或者“一键清除”所有正在运行的程序,怎样在关闭程序时
    mPrefs.edit().putBoolean("MainActivity_IS_OPEN", false).commit();
    设为Flase,因为如果只打开一次,以后全都是True,SubActivity判断就没意义了?
      

  3.   

    你重新启动MainActivity就行了啊
      

  4.   

    主要是下面这句:
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 最关键是这句
    startActivity(intent);
      

  5.   

    另一种方法:点击【通知】进入MainActivity,并且传惨putBoolean("isToSub",true),在MainActivity的onCreate方法中获取参数isToSub判断,是true,然后启动SubActivity即可
      

  6.   

    还有一种方法:设置主界面的activity为singleTop,返回时使用intent调转回主activity,并关闭自身activity,这样不管多少级子界面都能够直接返回主界面
      

  7.   

    5楼的方法是适用的,但是如果硬件设备不好,或者启动模式没设置好的话,有可能会有闪屏的情况出现,可以把通知栏直接传参到子activity,然后返回时判断这个值,不过也最好还是设置主activity为单例,否则主界面存在时跳转到子界面再返回,可能会导致打开两个主界面