【问题标题】:Android Service did not stopAndroid 服务没有停止
【发布时间】:2011-11-20 20:04:01
【问题描述】:

我有一个主类,有两个按钮来启动和停止服务。

public void onClick(View src) {
    switch (src.getId()) {
    case R.id.buttonStart:
        Log.d(TAG, "onClick: starting srvice");
        myService = new Intent(this, MyService.class);
        startService(myService);
        break;
    case R.id.buttonStop:
        Log.d(TAG, "onClick: stopping srvice");
        stopService(myService);
        break;
    }
}

启动服务旨在将当前 GPS 坐标发送到服务器。它开始完美,但没有在按钮点击时停止。

在 MYService.java 我有这个代码 onDestroy 方法。

public void onDestroy() {
    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onDestroy");
}

请帮助如何杀死这个服务。

【问题讨论】:

  • 点击按钮时,检查日志中是否出现“onClick:停止服务”。这可能是一些愚蠢的事情,比如按钮 ID 中的拼写错误,而 stopService() 永远不会被调用。

标签: android service kill destroy


【解决方案1】:

尝试停止服务stopService(itnt_BackServices ); 在此示例中itnt_BackServices 是服务的名称。您不能在服务类中停止服务,但在任何活动中都停止。

【讨论】:

    【解决方案2】:

    尝试将此添加到您的服务中

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        this.startId = startId;
        return mStartMode;
    }
    
    @Override
    public void onDestroy() {
        stopSelf(startId);
    }
    

    【讨论】:

    • 我的 onStop 永远不会停止我的后台服务,尝试了很多解决方案但没有运气,请提出任何想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多