在我的应用程序中,用户登录注销的东西就在那里。 我希望一旦用户登录意味着它将以消息的形式从服务器获取更新。
服务器每 10 秒发送一次新消息。 我希望每个登录的用户都能从服务器一条一条地获取所有更新的消息。
当用户单击登录按钮时,服务将启动。注销意味着服务将停止。
我喜欢这个
public class MessageService extends Service {
public String currentMessage="";
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show();
checkForCurrentTimestamp();
}
private void checkForCurrentTimestamp() {
//check TimeSatmp with Server TimeStamp
//if(!same)
//currentMessage= get message stored in server
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
}
}
在我的 LoginActivity 的 loginButton 中单击我写的以启动服务,然后 logoutButton 单击它停止服务。
它是否会向每个用户一条一条地更新所有消息,直到他们注销?
这是写的方式吗?
最佳答案
这将在每次登录时启动新的服务实例,这将显着增加电池消耗并降低性能。所以实现 onBind 这样你就可以使用 BindService 这样返回的 IBinder 可以为它的用户处理来自服务器的消息。
关于android是否可以在后台运行服务直到我们停止它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049156/