gpt4 book ai didi

Android服务随机/自动启动

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:33 24 4
gpt4 key购买 nike

我有一个 android 服务,我将它绑定(bind)到一个 Activity ,并在销毁时解除绑定(bind)。问题是,当应用程序关闭时,它会从无到有开始,有时当我打开设备时,有时是随机的,我知道它是因为 toast 消息而开始的。让我们来看看代码...

创建时的 Activity

Intent intent = new Intent(this, Sincronizacao.class);
this.bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
this.startService(intent);

mConnection的代码

private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
serviceBound = true;
localBinder = (LocalBinder<Sincronizacao>) service;
}
public void onServiceDisconnected(ComponentName className) {
serviceBound = false;
localBinder = null;
}
};

然后销毁

@Override
protected void onDestroy() {
super.onDestroy();
if (serviceBound && mConnection != null) {
unbindService(mConnection);
}
Intent intent = new Intent(this, Sincronizacao.class);
stopService(intent);
localBinder = null;
}

在我的服务中,实现了 onStartCommand,在那里我启动了一个线程来查询 Web 服务并将数据插入数据库,该线程有一段时间(真),我只是中断它 onDestroy 服务的方法.. .

编辑:

这是 list 行

android:name="com.company.package.service.Sincronizacao" />

我已经在这个错误中苦苦挣扎了一段时间,希望你能帮助我。

谢谢,

最佳答案

我能够解决问题...在服务中,我将代码从 onStartCommand 移到了至 onBind .从那以后我就没有遇到任何问题,我只是在一个 bidden 状态下使用该服务。

此外,之前我使用 thread.interrupt() 停止服务内的线程,现在我正在使用一个标志,并在 onUnbind 上将其设置为 false和 onDestroy .

关于Android服务随机/自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com