何时让服务器在线或离线了解用户

时间:2013-11-14 05:19:22

标签: android

我正在设计一款需要知道哪些用户在线或离线的应用。每个用户都可以 如果他在线或离线,则通知服务器,然后我可以从服务器获取该信息。

问题在于android中有一个标准,它将用户标记为在线或离线。

一种解决方案是,如果应用程序正在运行,则用户处于联机状态,如果应用程序强制停止或未运行,则用户处于脱机状态。所以在我的应用程序中,我怎么知道该应用程序正在停止?

如果以上是不可能的或不是一个好的解决方案,那么我的应用程序何时会告诉服务器它将脱机。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在Android中,there is no hard solid concept of "leaving an application"。可以通过按下主页,在后台仍然活着或者通过另一个应用程序从顶部推开应用程序来推送应用程序。没有真正的钩子可以用来说“好吧,我现在真的要走了,我应该通知服务器”。

所以,你可以采取相反的方式:服务器向用户授予保释金,比如500万,并且客户端应用程序必须更新它。在5分钟不活动之后,服务器可以知道用户正在离线。

当然,延迟将取决于您在服务器端需要的精确度/响应能力与电池使用率之间的折衷,因为这会通过不断通知服务器客户端仍然在线来降低电池寿命。 / p>

答案 1 :(得分:0)

在Android中当应用程序创建onCreate()时,Application类的方法是在强制关闭应用程序时调用onTerminate()方法是调用。

如果您想在创建和终止应用程序时执行某些操作,则需要通过扩展Application类来创建自定义应用程序类。

1)像这样创建自己的应用程序类

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
                // When application creates

    }

    @Override
    public void onTerminate() {
        super.onTerminate();
                // calls when application force closed.

    }

}

2)在manifest.xml中

<application
        android:name="com.yourpackagename.MyApplication"
        android:allowTaskReparenting="true"
        android:debuggable="true"
        android:icon="@drawable/ijoomer_luncher_icon"
        android:label="@string/app_name"
        android:theme="@style/ijoomer_theme" >