当前位置:首页 » 安卓系统 » android重启服务

android重启服务

发布时间: 2022-03-01 22:27:40

Ⅰ android 如何启动自己的c服务

01
首先,要在你的activity中启动这个服务,代码如下所示。
/*
* 启动一个延迟线程
*/
Intent serviceIntent=new Intent();
serviceIntent.setClass(Welcome.this, HoutaiService.class);
startService(serviceIntent);
>02
这个时候你就要去写你的服务了,如下图所示,这是和写的一个服务。
>03
注意,因为后台当中是没有界面的,所以不需要继承activity。但这个候你就会遇到一个问题就是如何与用户互动呢,那么下面就是一个方法。
代码如下。
NotificationManager nm=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//2.实例化一个通知,指定图标、概要、时间
Notification n=new Notification(R.drawable.ic_launcher,"智能退出",System.currentTimeMillis());
//3.指定通知的标题、内容和intent
Intent intent = new Intent();
PendingIntent pi= PendingIntent.getActivity(HoutaiService.this, 0, intent, 0);
n.setLatestEventInfo(HoutaiService.this, "你已连续使用网络超3小时", "为防止长时间空闲网络,已退出。如需打开,请重新打开应用", pi);
//指定声音
n.defaults = Notification.DEFAULT_SOUND;
//4.发送通知
nm.notify(3, n);
>04
这段代码的意思是通过安卓中的通知来与用户进行交互。能够达到提示用户的目的,怎么样,是不是很简单。

Ⅱ Android中怎么启动关闭Service及功能解释

启动:
//首先注册服务
<service
android:name="com.wangdeyu.service.MusicService"
android:exported="false" >
<intent-filter>
<action android:name="com.abc" />
</intent-filter>
</service>

//启动服务
Intent service=new Intent(" com.abc");
startService(service);
//Service生命周期
①onCreate() 创建Service
②onStart(Intent intent, int startId) 启动Service
③onDestroy() 销毁Service
//关闭服务
stopService(service);

Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDestroy
我们有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。
1 通过startService,就是上面这种
Service会经历 onCreate --> onStart
stopService的时候直接onDestroy
如果是 调用者 直接退出而没有调用stopService的话,Service会一直在后台运行。
下次调用者再起来仍然可以stopService。
2 通过bindService
Service只会运行onCreate, 这个时候 调用者和Service绑定在一起
调用者退出了,Srevice就会调用onUnbind-->onDestroyed
所谓绑定在一起就共存亡了。
注意:Service的onCreate的方法只会被调用一次,
就是你无论多少次的startService又 bindService,Service只被创建一次。
如果先是bind了,那么start的时候就直接运行Service的onStart方法,
如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,就stop不掉了,
只能先UnbindService, 再StopService,所以是先start还是先bind行为是有区别的。
Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。
这两个方法都可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,
即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。
如果打算采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,
接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,
但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。
如果打算采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,
接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,
接着调用onDestroy()方法。如果调用bindService()方法前服务已经被绑定,
多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。
如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法.

Ⅲ android中当Service在运行时怎么重启Service

只需要重新startService即可重新调用service的onStart()。

  1. Service是在一段不定的时间运行在后台,不和用户交互应用组件。每个Service必须在manifest中 通过<service>来声明。可以通过contect.startservice和contect.bindserverice来启动。

  2. Service和其他的应用组件一样,运行在进程的主线程中。这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现。


service的两种模式(startService()/bindService() :

1.本地服务 Local Service 用于应用程序内部。

它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用Context.startService()启动,而以调用Context.stopService()结束。它可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。不论调用了多少次startService()方法,你只需要调用一次stopService()来停止服务。

用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。


2.远程服务 Remote Service 用于android系统内部的应用程序之间。

它可以通过自己定义并暴露出来的接口进行程序操作。客户端建立一个到服务对象的连接,并通过那个连接来调用服务。连接以调用Context.bindService()方法建立,以调用 Context.unbindService()关闭。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。

Ⅳ android 怎样启动后台服务

后台服务就是后台运行的意思,只要单击任务栏上代表这程序的按钮,原来后台运行的程序就会到前台来,前台运行的程序就会到后台去了。如下图所示。

Windows 7可以打开几个窗口,每个任务分配一个窗口,各个窗口可以重叠、排开、放大、缩小、移动等,可以方便地在各打开的窗口间切换,各个打开的应用程序共享电脑资源,多任务环境对用户是透明的,每个任务都可以按前台、后台和独占三种方式进行。

多任务并存时,打开一个窗口后,在任务栏的空白处单击鼠标右键,然后在弹出的快捷菜单中可以选择层叠、横向平铺或纵向平铺等。

当Windows 7打开了几个窗口时,实际上只有一个是你可以对它进行操作的窗口,叫做当前活动窗口。在所有打开窗口的最前面,标题栏底色为深色的窗口为当前活动窗口。单击任务栏上的按钮,或按下换档键加制表键,即可以把这个窗口切换为当前活动窗口。

任何已经打开,不在前台运行的窗口,在后台仍然是活动的,占用内存和中央处理器等系统资源,所以,从这个意义上来说,长时间不用的窗口要及时关闭,方法是单击应用程序窗口标题栏右上角的关闭按钮。

;一个应用程序,无论是否最小化,在任务栏上都会以按钮的形式显示出来,当前活动窗口的应用程序的按钮呈凹陷形状,其余呈隆起形状。因此,判断一个窗口是否关闭,只要看其是否还在任务栏中即可。

Ⅳ android 如何让service被管理器杀死后自动重启

在ondestory生命周期里面 startService,这样他就永远干不掉该service了。一被销毁就重启

Ⅵ android中ondestory 重启了service 怎么进行关闭

满意 解答 这是因为你误删了手机自带的系统软件的原因 如果你想删除 手机上自带的一些没有用的软件 建议安装360 你删除的软件如果是主要的 你还可以还原 如果你现在删除的没有备份 不好意思哪只有从新刷机。

Ⅶ 安卓service关闭后怎么自动重启

首先申明service关闭有两种情况:
1、程序进入后台,系统可能会销毁应用,可以理解为android端监听推送消息的服务在启动后是一直在后台运行的,但是当内存不足时,或者第三方应用清理内存时会杀死后台服务,此时该服务需要自动重启。

该问题只需要在推送服务的onStartCommand方法返回类型设置成START_STICKY,官方文档对此的解释是:public static final int START_STICKY = 1;
大致意思是,在服务被系统杀死时会重新被创建,onStartCommand方法会被调用,但是需要注意的是,在调用onStartCommand时传入的intent值可能为空,如果该方法中会用到该参数需要特别注意。
设置该参数可以解决第三方应用在清理内存时或者内存不足时杀掉推送服务之后重启推送服务。
2、服务被用户在应用管理-》正在运行中点击“停止”销毁该服务,服务不能重启。
当用户执行该操作时,服务中的onDestory方法被调用。所以我们可以在onDestory方法中再次启动服务。但是此方案不能解决用户在应用管理-》已下载中,强行停止该应用程序时服务被关闭后重启,对比腾讯新闻,同等条件下,该问题也存在,即不能重启服务。

Ⅷ android7.0 怎样启动service

安卓7.0开启夜间模式介绍: Android 7.0正式版已经发布,然而此前在开发者预览版中的一些功能遭到了阉割,最终没有在正式版中加入,其中之一便是夜间模式。而实际上,安卓7.0正式版中是有这个功能的,只不过被谷歌隐藏了而已。 Reddit网站上的帖子表示,安卓7.0正式版隐藏了夜间模式的功能,可通过一些ADB命令开启,但普通消费者并不懂怎样使用ADB命令,现在有开发者专门开发了一个开启安卓7.0隐藏夜间模式的APP,放在谷歌商店供下载。 用户只需要安装这款APP,然后点击打开夜间模式功能按钮,之后去快速启动栏按住设置图标,进入系统调谐器界面开启夜间模式功能即可。 值得一提的是,通过安卓6.0.1升级到Android 7.0牛轧糖的用户无法使用以上方法打开夜间模式,只有从以前的开发者预览版升级到Android 7.0牛轧糖正式版的手机才可以。 既然夜间模式的代码仍然在安卓7.0正式版中,我们估计谷歌会在未来合适的时候正式放开这个功能。

Ⅸ 怎么查看Android设备中的启动服务

今天给大家的小例子是列出Android设备中所有启动的服务,及判断某个服务是否开启,具体步骤如下了:
第一步:新建一个Android工程,命名为RunningService。
第二步:修改RunningService.java代码如下:
package com.tutor.runningservice;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.widget.TextView;
public class RunningService extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView mTextView = new TextView(this);
ActivityManager mActivityManager =
(ActivityManager)getSystemService(ACTIVITY_SERVICE);

List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);
//我要判断的服务名字,我在launcher2里加了一个音乐服务
final String musicClassName = "com.android.launcher2.MusicService";

boolean b = MusicServiceIsStart(mServiceList, musicClassName);

mTextView.setText("你要判断的服务状态为: " +b+"/n" + getServiceClassName(mServiceList));
setContentView(mTextView);
}
//通过Service的类名来判断是否启动某个服务
private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){

for(int i = 0; i < mServiceList.size(); i ++){
if(className.equals(mServiceList.get(i).service.getClassName())){
return true;
}
}
return false;
}
//获取所有启动的服务的类名
private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){
String res = "";
for(int i = 0; i < mServiceList.size(); i ++){
res+=mServiceList.get(i).service.getClassName()+ " /n";
}

return res;
}
}
第三步:运行上述工程,查看效果!

Ⅹ 如何在android系统中开启自己的服务

Android开机启动Service,需要使用BroadcastReceiver,Android系统,开机会发送一个开机广播,可以通过BroadcastReceiver来接收开机广播。
具体代码:
1.在配置文件AndroidManifest.xml中向系统注册receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

2.需要添加相应权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

3.在Receiver中就可以添加开机需要进行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

}
}

4.执行开机后的操作,Intent intent = new Intent(context,Service.class); context.startService(intent); 这样即可开机启动Service了。

热点内容
服务器ip转载 发布:2025-02-12 05:19:12 浏览:296
oraclesql插入数据 发布:2025-02-12 05:19:05 浏览:918
stl源码剖析笔记 发布:2025-02-12 05:01:51 浏览:589
教务系统web服务器搭建 发布:2025-02-12 05:01:17 浏览:98
全国dns服务器地址大全 发布:2025-02-12 05:01:13 浏览:683
安卓什么软件能拍到月亮 发布:2025-02-12 04:59:42 浏览:782
手机卡忘记服务密码怎么办 发布:2025-02-12 04:59:10 浏览:374
如何让助理服务器可以被远程 发布:2025-02-12 04:47:11 浏览:770
存储空间不足但 发布:2025-02-12 04:46:27 浏览:278
树莓派编程板 发布:2025-02-12 04:41:45 浏览:909