蓝牙连接不应该因此而中断啊,最好保持长连接
可以重写onPause()方法,看下生命周期的使用

解决方案 »

  1.   

    我觉得你可以吧这蓝牙连接放到service中去,作为后台服务一直运行,保持常连接
      

  2.   

    回rtyou1234:
    因为是客户要求要切断连线,所以不能保持连接。
      

  3.   

    回blovecat与jack_wolf_:
    小弟有试着想从生命周期下手,
    但切换到其他程式的时候,
    呼叫的都是 onPause() 和 onStop(),
    小弟写了4个Activity,
    这边就简单称作[首页]、[蓝芽]、[参数种类1]、[参数种类2],
    一开始进[首页]开[蓝芽]连线后,
    使用者会进入[参数种类1]或[参数种类2]调整装置,
    小弟想要写的效果是在[参数种类1]或[参数种类2]Activity中,
    发生了让小弟的程式会退到背景去的情况,
    小弟能够让蓝芽中断连线并回到首页,
    使用者在处理完其他事情回到小弟的APP中只会看到首页,
    进入[参数种类1]或[参数种类2]都只能透过[首页]进行操作,
    離開的時候是直接用finish()離開,
    如果把斷線寫到 onPause() 或 onStop() ,
    只要一離開[參數種類1]或[參數種類2]都會造成斷線,
    才想說問問看有沒有什麼好方法?
      

  4.   

    在onpause的时候加这么个判断//判断整个应用是不是在手机前台
    public boolean isAppOnForeground() {
    ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
    String packageName = getApplicationContext().getPackageName(); List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    if (appProcesses == null)
    return false; for (RunningAppProcessInfo appProcess : appProcesses) {
    if (appProcess.processName.equals(packageName) && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
    return true;
    }
    }
    return false;
    }
      

  5.   

    感激版大的帮忙,
    不过小弟的[首页]、[参数种类1]、[参数种类2]
    都写在不同的package中,
    类似像这样:
    [首页]:com.xxx.p0
    [参数种类1]:com.xxx.p1
    [参数种类2]:com.xxx.p2
    感觉版大的方式是去检查在运行中的Process,
    所以程式中取得的packageName都是com.xxx.p0,
    比对的也是com.xxx.p0,
    只要从[首页]进入[参数种类1],
    [首页]就会进入背景,
    版大的程式永远都会输出false,不知是否有方式解决?
      

  6.   

    就用进程top判断就行,就像版主的样子,不过包名这快你可以自己做判断,你完全可以用contains("com.xxx")这样来判断的,不用非用本程序报名来判断
      

  7.   

    抱歉版主,
    小弟自己在打程式码的地方有打错才会一直传出false,
    上一篇回文是小弟太急,没测清楚,这边先说声抱歉。
    修正过后,一切正常使用,
    不过,版主的程式要放在onStop() 才有办法监测到程式变成了背景,在onPause() 好像侦测不到。