2

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

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

一种解决方案是,如果应用程序正在运行,则用户在线,如果应用程序强制停止或未运行,则用户离线。那么在我的应用程序中,我怎么知道应用程序正在停止?

如果上述方法不可能或不是一个好的解决方案,那么我的应用程序何时会告诉服务器它正在离线。

提前致谢。

4

2 回答 2

0

在 Android 中,当应用程序被创建时,应用程序类的 onCreate() 方法是在应用程序被强制关闭时调用的 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" >
于 2013-11-14T05:42:07.887 回答
0

在 Android 中,没有“离开应用程序”的硬性概念。应用程序可以通过按 home 推入堆栈,在后台仍然存在或被另一个应用程序推离顶部。没有真正的钩子可以用来说“好的,我现在真的要崩溃了,我应该通知服务器”。

所以,你可以反过来看:服务器向用户授予保释金,比如说 500 万,客户端应用程序必须更新它。在 5 百万不活动之后,服务器可以知道用户正在离线。

当然,延迟将是服务器端所需的精度/响应能力和电池使用之间的权衡,因为这会通过不断通知服务器客户端仍然在线来缩短电池寿命。

于 2013-11-14T05:23:25.683 回答