android – 将数据传递给服务的onDestroy()

android – 将数据传递给服务的onDestroy(),第1张

概述我想知道服务是否从特定活动终止,所以我在调用stopServivce(service)时从该活动传递一个字符串. 这是代码: Intent service = new Intent(Activity.this, service.class); service.putExtra("terminate", "activit 我想知道服务是否从特定活动终止,所以我在调用stopServivce(service)时从该活动传递一个字符串.

这是代码:

Intent service = new Intent(Activity.this,service.class);                service.putExtra("terminate","activity terminated service");                stopService(service);

但我似乎可以使用getIntent().getExtras().getString(“terminate);在onDestroy()方法中访问此变量.

[编辑]

我找到了绕过这个障碍的方法,但我仍然希望我的问题得到解答.我只是在活动中的onDestroy()方法中做了我必须做的事情,然后调用了stopService(service).我很幸运,我的情况不需要更复杂的事情.

解决方法 无法访问onDestroy中的Intent.您必须以其他方式发出信号(Binder,共享首选项,本地广播,全局数据或Messenger).在 @L_301_0@中给出了一个使用广播的好例子.您也可以通过调用startService而不是stopService来使其工作. startService仅在尚未存在的情况下启动新服务,因此对startService的多次调用是将Intent发送到服务的机制.你看到这个技巧是由broadcastReceivers使用的.由于您可以访问onStartCommand中的Intent,因此您可以通过检查Intent extras并在指示终止时调用stopSelf来实现终止.这是一个动态的草图 –
public int onStartCommand(Intent intent,int flags,int startID) {        final String terminate = intent.getStringExtra("terminate");        if(terminate != null) {            // ... do shutdown stuff            stopSelf();        }        return START_STICKY;    }
总结

以上是内存溢出为你收集整理的android – 将数据传递给服务的onDestroy()全部内容,希望文章能够帮你解决android – 将数据传递给服务的onDestroy()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存