android service怎么停止自己

android service怎么停止自己,第1张

[ 停止Service ]

在Activity中停止Service

[java] view plain copy

Intent intent = new Intent(this, ClassNameclass);

stopService(intent);

在停止Service后,再启动Service, 则又会调用onCreate(), onStartCommand()

可进行以下操作:

1重新开关机。

2卸载近期安装的第三方软件后观察。

3备份手机数据(电话簿、短信息、多媒体文件等),恢复出厂设置。

如果恢复出厂设置问题依然存在,建议将手机送至就近的服务中心进行检测及进一步处理。

• ContextstartService()

• ContextbindService()

1 在同一个应用任何地方调用 startService() 方法就能启动 Service 了,然后系统会回调 Service 类的

onCreate() 以及 onStart() 方法。这样启动的 Service 会一直运行在后台,直到

ContextstopService() 或者 selfStop() 方法被调用。另外如果一个 Service 已经被启动,其他代码再试图调用

startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStart() 。

2 另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service

的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后

Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind

接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service

还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。

总结:

1

startService()的目的是回调onStart()方法,onCreate()

方法是在Service不存在的时候调用的,如果Service存在(例如之前调用了bindService,那么Service的onCreate方法

已经调用了)那么startService()将跳过onCreate() 方法。

2

bindService()目的是回调onBind()方法,它的作用是在Service和调用者之间建立一个桥梁,并不负责更多的工作(例如一个

Service需要连接服务器的操作),一般使用bindService来绑定到一个现有的Service(即通过StartService启动的服

务)。

由于Service 的onStart()方法只有在startService()启动Service的情况下才调用,故使用onStart()的时候要注意这点。

一、应用程序APP缓存和数据过多,导致强制退出

如果某款APP以前运行好好的,但突然出现“应用程序停止运行”,这时我们可以试试清理该APP的缓存数据。进入“设置→应用程序→全部”,找到并点击某应用的图标,在应用信息界面中选择“清除数据”以及“清除缓存”即可。

二、当然程序出现停止运行也可能是系统内存不足引起的。我们关闭一些不常用应用释放部分内存即可

三、通过手机里装的第三方安全类的软件进行垃圾清理

四、可能是该应用程序和当前系统存在冲突

刚刚安装的某APP出现了运行报错的问题,则很有可能是该APP与手机当前的系统存在冲突。要解决的话要不是将手机系统更新到最新版本,或者将APP更新到最新版本。

五、一些支持存储卡应用安装的也容易出现上述应用停止运行问题,以此在以后选择程序安装位置,请选择“由系统决定”。

六、程序本身问题:有些程序本身存在问题

直接stop或者finish那个Activity最快。想停止传输,就要停止传输服务或者断开传输的线程就好了。不知道你的代码是怎么写,如果你把传输的线程是写在Service里的,那你就直接unbine掉那个Service,这样传输的线程就断开了。按科学来说,程序也应该是这样设计才人性化。

  转载 Android如何打开/关闭系统解锁服务?—典型错误分析

  最近正在做一个Android的解锁应用,需要屏蔽系统解锁,并在适当的时候打开系统解锁,在网上search了很多有关系统解锁的资料,学到了很多关于系统解锁方面的知识,同时也发现了很多网友犯下的一个共同的错误。现分享一下:

  错误一:

  总所周知,要关闭系统自带的锁屏服务需要用到以下代码:

  mKeyguard = (KeyguardManager) getSystemService(ContextKEYGUARD_SERVICE);

  mKeylock = mKeyguardnewKeyguardLock("");

  mKeylockdisableKeyguard();

  要打开系统锁屏服务需要以下代码:

  mKeylockreenableKeyguard()

  网上很多朋友对disableKeyguard()的理解为:将屏幕打开并解锁,只要执行这个方法就会是屏幕变亮并自动解锁!同样reenableKeyguard()的作用是关闭屏幕并上锁!

  大错而特错了!

  我们来看看google api对这两个方法的解释:

  disableKeyguard: Disable the keyguard from showing If the keyguard is currently showing, hide it The keyguard will be prevented from showing again untilreenableKeyguard() is called

  reenableKeyguard: Reenable the keyguard The keyguard will reappear if the previous call todisableKeyguard() caused it it to be hidden

  所以,disableKeyguard只是关闭系统锁屏服务,调用该方法后并不会立即解锁,而是使之不显示解锁,同样reenableKeyguard是恢复锁屏服务,并不会立即锁屏!

  错误二:

  下面是通过两个按钮来模拟打开/关闭系统锁屏的代码:

  package comexamplekeyguard; import androidosBundle; import androidappActivity; import androidappKeyguardManager; import androidappKeyguardManagerKeyguardLock; import androidcontentContext; import androidviewMenu; import androidviewMenuItem; import androidviewView; import androidwidgetButton; import androidsupportv4appNavUtils; public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { superonCreate(savedInstanceState); setContentView(Rlayoutactivity_key_guard); / 获取KeyGuardManager对象 / km = (KeyguardManager)thisgetApplicationContext()getSystemService(ContextKEYGUARD_SERVICE); myButtonOff = (Button)findViewById(RidbuttonOff); myButtonOffsetOnClickListener(new ButtonOnClickListener(){ public void onClick(View arg0) { / 关闭系统锁屏服务 / kmnewKeyguardLock(TAG)disableKeyguard(); } }); myButtonOn = (Button)findViewById(RidbuttonOn); myButtonOnsetOnClickListener(new ButtonOnClickListener(){public void onClick(View arg0) { / 打开系统锁屏服务 / kmnewKeyguardLock(TAG)reenableKeyguard(); } }); } }

  这段代码看起来很完美,但是执行之后会发现:只能关闭锁屏服务,无法恢复锁屏服务!

  是什么原因呢?

  原来是在调用disableKeyguard和reenableKeyguard的时候必须使用同一个KeyguardLock对象!

  程序略加修改:

  package comexamplekeyguard; import androidosBundle; import androidappActivity; import androidappKeyguardManager; import androidappKeyguardManagerKeyguardLock; import androidcontentContext; import androidviewMenu; import androidviewMenuItem; import androidviewView; import androidwidgetButton; import androidsupportv4appNavUtils; / @author Onejune @function 打开/关闭系统锁屏服务测试 @note 在打开/关闭系统锁屏服务时必须使用同一个KeyguardLock对象,否则出错 / public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private KeyguardLock kl; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { superonCreate(savedInstanceState); setContentView(Rlayoutactivity_key_guard); / 获取KeyGuardManager对象 / km = (KeyguardManager)thisgetApplicationContext()getSystemService(ContextKEYGUARD_SERVICE); / 获取KeyguardLock对象 / kl = kmnewKeyguardLock(TAG); myButtonOff = (Button)findViewById(RidbuttonOff); myButtonOffsetOnClickListener(new ButtonOnClickListener(){ public void onClick(View arg0) { / 关闭系统锁屏服务 / kldisableKeyguard(); } }); myButtonOn = (Button)findViewById(RidbuttonOn); myButtonOnsetOnClickListener(new ButtonOnClickListener(){ public void onClick(View arg0) { / 打开系统锁屏服务 / klreenableKeyguard(); } }); } }

  终于OK!

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/843739.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-11
下一篇2023-08-11

随机推荐

  • 身高172 体重114 小腿围38 求助~

    你的体重算正常体重,不能从食物方面下手就从外部下手,首先你要看你的小腿是属于水肿,脂肪还是肌肉胖水肿你一按下去它不会立刻恢复,会有凹痕,这是你要注意腿部运动,使血液循环,也可以吃些冬瓜,咖啡等消水肿的食品脂肪比较好久解决,推荐两款好的减肥膏

    2024-04-15
    1063100
  • 推荐好用的口红?

    推荐几款比较好用的口红:1 香奈儿口红(Chanel Rouge Coco)。香奈儿口红色泽丰富,质地细致顺滑,上唇效果很自然。色号444和548是香奈儿永恒的经典红色,非常适合亚洲女性。2 玫琳凯口红(Maybelline)。玫琳凯的Co

    2024-04-15
    60100
  • cle de peau beaute详细资料大全

    Clé de Peau Beauté简称CPB,法文含义是“开启美丽肌肤的钥匙”,中文翻译为“肌肤之钥”,是日本资生堂旗下的品牌。基本介绍 中文名称 :肌肤之钥 英文名称 :cle de peau beaute 创立时间

    2024-04-15
    55200
  • 男士护肤品哪个好用

    导语READ男士们在冬季的皮肤问题同样突出,直男们更是不喜欢用护肤品,从而导致皮肤问题越来越严重。其实护肤品并不是女士们的专利,男士们同样需要保养皮肤。荧屏上的小鲜肉并不见得比你帅,他们只是保养得比较好而已。在此,小编将向你介绍十大经典男生

    2024-04-15
    50900
  • 精华露和精华液的顺序

    精华露和精华液的顺序,其实并没有固定的标准。不同品牌、不同产品之间,使用顺序也可能存在一些差异。但是,一般来说,我们可以这样理解:我们需要明确两者的功能区别。精华液是一种具有高浓度活性成分的保养品,可以为肌肤提供深层营养滋润,在保持肌肤水油

    2024-04-15
    48500
  • 藏红方养生项目可靠吗?

    藏红方养生项目不可靠。有网友投诉藏红方利用招商加盟的外衣,通过虚构事实隐瞒真相的手段,召开技术交流大会,老客户带新客户返还高额佣金等手段,骗取加盟商的财物。当加盟商认清产品,发现产品功效并没有公司介绍的那么“神奇”,发现被忽悠时,销售人员却

    2024-04-15
    40300
  • 广州露皙兰化妆品有限公司电话是多少?

    广州露皙兰化妆品有限公司****:公司电话66682409,公司邮箱13722885094@139con,该公司在爱企查共有6条****,其中有电话号码2条。公司介绍:广州露皙兰化妆品有限公司是2017-07-20在广东省广州市白云区成立的

    2024-04-15
    42200

发表评论

登录后才能评论
保存