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

随机推荐

  • 多芬和妮维雅洁面泡泡哪个好用

    多芬和妮维雅的洁面泡泡都有一定程度的保湿成分,但具体哪个更好用,还需要考虑以下几点因素:1 成分:多芬的洁面泡泡含有月桂酰,配合常见的增泡剂,达到清洁肌肤的效果。而妮维雅的洁面泡沫中确实含有低含量的皂基,所以对皮肤有干燥或刺激的现象。2 质

    2024-04-15
    50400
  • 伊思红参水乳适合哪个年龄

    伊思红参水乳也是比较好的一款护肤品,那你知道哪个年龄层的人更适合用伊思红参水乳吗下面我们就一起来看看伊思红参水乳适合哪个年龄吧!伊思红参水乳中有红参提取物,这种物质有很好的紧致抗皱作用,所以更适合30岁以上的熟龄肌肌肤。因为这个年龄层次的肌

    2024-04-15
    36800
  • 《妮维雅100年呵护肌肤》在办100年诞辰答题活动赢奖金吗?10658880是什么信息台?

    10658880是中国移动12580提供的消费资讯类彩信杂志服务《12580生活播报》,由7种不同内容定位的刊物组成:财富生活、去处活地图等。订制:发送98到10658880或拨打12580开通退订:发送QX98到10658880或发送00

    2024-04-15
    43500
  • nivea妮维雅水感防晒乳真假辨别对比图

    nivea妮维雅水感防晒乳我是代购买的,担心自己买到了假货,想学习下如何分辨真假。那么nivea妮维雅水感防晒乳真假怎么辨别下面我为你提供妮维雅防晒乳对比图。真假辨别瓶身正面:正品的瓶身正面下方是有一行日文文字的,而假货的该位置却是

    2024-04-15
    35600
  • zfb绿宝瓶焕肤套盒敏感肌可以用吗

    可以用。宝瓶有很强大的修复力,敏感肌肤也可以使用,可以及时缓解干燥问题肌肤,特别是在肌肤敏感阶段,修复效果更为显著。zfb绿宝瓶焕肤套盒主要成分有野生高丽参提取液、净螨素,金银花提取液、紫花地丁提取液、金缕梅提取液等,能有效祛除痘痘、螨虫,

    2024-04-15
    31700
  • 伊思红参蜗牛霜怎么用,伊思红参蜗牛霜使用方法

    its skin伊思红参蜗牛霜是目前市场非常受欢迎的产品这一,虽然说通常面霜在使用上面并没有什么太需要注意的,不过品牌的不同也会有一些细节上的差别,以下我将为大家说明its skin伊思红参蜗牛霜的用法。伊思红参蜗牛霜怎么用1、彻底

    2024-04-15
    30500
  • 男士护肤品哪个好用?有推荐的牌子吗

    男士护肤品牌很多啊,但跟女士护肤品相比,一般男士都比较喜欢简便操作,所以主推洁面,爽肤水和乳液套装,少数搭配精华和面霜。推荐一:高夫高夫是老品牌了,为中国男士肌肤定制的品牌,护肤品系列很多,针对不同的肌肤问题对号入座即可。个人也是比较喜欢这

    2024-04-15
    34200

发表评论

登录后才能评论
保存