我正在设计一个需要知道哪些用户在线或离线的应用程序。每个用户都可以通知服务器他是在线还是离线,然后我可以从服务器获取该信息。
问题是android中有一个标准将用户标记为在线或离线。
一种解决方案是,如果应用程序正在运行,则用户在线,如果应用程序强制停止或未运行,则用户离线。那么在我的应用程序中,我怎么知道应用程序正在停止?
如果上述方法不可能或不是一个好的解决方案,那么我的应用程序何时会告诉服务器它正在离线。
提前致谢。
我正在设计一个需要知道哪些用户在线或离线的应用程序。每个用户都可以通知服务器他是在线还是离线,然后我可以从服务器获取该信息。
问题是android中有一个标准将用户标记为在线或离线。
一种解决方案是,如果应用程序正在运行,则用户在线,如果应用程序强制停止或未运行,则用户离线。那么在我的应用程序中,我怎么知道应用程序正在停止?
如果上述方法不可能或不是一个好的解决方案,那么我的应用程序何时会告诉服务器它正在离线。
提前致谢。
在 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" >
在 Android 中,没有“离开应用程序”的硬性概念。应用程序可以通过按 home 推入堆栈,在后台仍然存在或被另一个应用程序推离顶部。没有真正的钩子可以用来说“好的,我现在真的要崩溃了,我应该通知服务器”。
所以,你可以反过来看:服务器向用户授予保释金,比如说 500 万,客户端应用程序必须更新它。在 5 百万不活动之后,服务器可以知道用户正在离线。
当然,延迟将是服务器端所需的精度/响应能力和电池使用之间的权衡,因为这会通过不断通知服务器客户端仍然在线来缩短电池寿命。