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

随机推荐

  • 苏秘299一套真的假的

    苏秘299元一套的是真的。苏秘套盒分很多种,每一套包含的商品也是不一样的。有的是小样系列,种类多一些。价格的高低决定种类的多少和容量的多少。苏秘是LG生活健康株式会社旗下的高端自然发酵化妆品品牌,2016年入驻中国。为女性呈现温和、有效的护

    2024-04-15
    28000
  • 有没有好的防晒乳呢?

    1、Nivea妮维雅水感防晒啫喱SPF50这个妮维雅水感防晒是目前为止我用得最多的一款防晒,找代购买80人民币左右有140g的容量,所以大量抹在胳膊上腿上也不心疼。它挤出来是半水状半乳液状的质地,不像那种厚重的防晒,很水润,极度容易推开,抹

    2024-04-15
    10700
  • 伊贝诗高皙系列怎么样?

    伊贝诗高皙系列是一款针对轻熟肌的护肤品,具有滋养淡纹、抗初老、促进肌肤活力、让肌肤日益紧致透亮等功效。该系列使用效果好,质地开度适中,特别保湿,能减慢皮肤老化,去除皱纹和色斑,具备清洁、去角质和保湿护肤的功效,包装干净卫生便于携带。总体来说

    2024-04-15
    18600
  • 美容院里的做背的基础油和套盒有什么区别

    美容院里的做背的基础油和套盒有什么区别?在美容院里进行背部护理的时候,通常会有两种选择:基础油和套盒。这两种产品有什么区别呢?基础油是一种不含任何添加剂的纯天然植物油,常见的有橄榄油、葡萄籽油、甜杏仁油等。在进行背部护理时,按摩师会用基础油

    2024-04-15
    9300
  • 海南阳江雅苑养生城在哪里?

    阳江雅苑养生城位于:海南省琼中县阳江国营农场场部综合楼(乌那公路26公里处)。阳江雅苑养生城目前单价9100元_,物业类型是商业-公寓,房屋产权70年,装修情况为精装修,规划面积83101_,建筑面积400000_。:阳江雅苑养生城楼盘测

    2024-04-15
    10100
  • 清莹露和神仙水的区别

    清莹露和神仙水的区别为价格区别、外观区别、功效区别、适用人群不同、效果区别。1、成分区别:神仙水是由半乳糖酵母的发酵物过滤液组成,除了丁二醇和其它润肤成份之外,没有其它有效成份。清莹露是用水做溶剂,加入了酵母、甘油、适量的乳化剂和酸类,水杨

    2024-04-15
    8700
  • 过期的乳液精华液啫喱可以用来护手霜用吗

    过期的乳液、精华液和啫喱通常不能再用于脸部护肤,因为它们的成分可能会变质并产生有害物质。这些过期产品仍然可以在其他方面发挥作用。过期的乳液精华液啫喱可以用来护手霜用吗?答案是肯定的。虽然经常使用护手霜对我们的手部健康至关重要,但很少有人想到

    2024-04-15
    15000

发表评论

登录后才能评论
保存