我在android中使用socket进行小型聊天应用程序..我希望应用程序以这样一种方式,即当我们打开应用程序时套接字应该连接,并且一旦用户离开应用程序就应该断开连接。事情是,它应该在用户处于应用程序中的任何活动时连接(例如:配置文件,创建组或除了对话页面之外的任何活动)与whatsapp和类似的聊天应用程序中的相同内容。如何实现这一点? 提前谢谢
答案 0 :(得分:2)
我的诀窍,我相信还有其他人,就是用活动计数器创建一个抽象的BaseActivity,并让所有'真实'的活动从这个类实例化:
abstract class BaseActivity extends Activity {
protected static int numForegroundActivities;
@Override
public void onStart() {
super.onStart();
numForegroundActivities++; // no need for thread sync
}
@Override
protected void onStop() {
super.onStop();
if (--numForegroundActivities == 0) {
doAppClosedCode(); // <----------------------------
}
}
}
// all instantiable activities should extends BaseActivity
class MainActivity extends BaseActivity ....
希望它有所帮助。
答案 1 :(得分:0)
您可以使用此api监视活动在前台的时间:
Application.registerActivityLifecycleCallbacks
调用onActivityStarted时,Activity位于前台。