android是否可以在后台运行服务直到我们停止它

标签 android service

在我的应用程序中,用户登录注销的东西就在那里。 我希望一旦用户登录意味着它将以消息的形式从服务器获取更新。

服务器每 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/

相关文章:

java - 如何使工具栏保留在屏幕上?

android - layout_width 和 layout_height 不适用于主题中的 edittext

java - 下载东西时是绑定(bind)服务还是自定义线程?

linux - 如何在 CentOS 5.10 上为已安装的 STUNNEL 创建服务

php - Android 将数据插入实时 mysql 数据库

java - 日期格式格式不正确

java - 如何在更改 EditText 和 Seekbar 时自动更改 TextView

屏幕关闭时 Android Wakelock 不工作

sql - 基于定时器的事件触发器

angularjs - Angular 元数据服务 [$injector :unpr]