简单说明Service服务,使用Service
2017-01-06 17:07
543 查看
Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。
我们都知道Activity能呈现一个用户界面,于用户进行交互,而在很多时候,我们的程序不需要于用户进行交互的页面,只需要在后台一直运行着,做一些事物的处理,例如,一个service可能会处理网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,Http的网络通信以及与服务器保持一个推送的连接,所有这些活动都是在后台进行。这个时候我们就可以用到Service。接下来我们就来试试如何使用Service
先创建一个项目:
创建一个Service
创建成功后在activity_main.xml中,写两个按钮
在MainActivity.calss 中
public class MainActivity extends AppCompatActivity {
}
接下来我们运行项目
这个时候我们打开手机的“设置”,,然后找到“应用”,选择正在运行的应用,发现我们的应用并没有在其中
然后我们进入项目点击“启动Service服务”,然后再进入设置:
这个时候发现我们的项目正在运行
然后再次回到项目点击 “停止Service服务”,然后进入设置:
发现我们的项目又没了,,
通过这种方式我们可以把我们的程序运行在后台。
接下来我们进一步了解一下,,Service在后台怎么运行的,如何运行我们自己的代码。
我们让service在后台不断输出一个语句,来观察
在MyService类中重写一个方法,onStartCommand 这个方法在外界执行startService时就会执行。
然后在onStartCommand方法中写一个线程,来让它不断输出一个语句,每输出一句就休眠1秒钟。来看代码:
public class MyService extends Service {
}
效果:
这种时候我们停掉Activity,退出项目服务也不会停止。
这就是服务,我们可以用它在后台执行耗时操作
我们都知道Activity能呈现一个用户界面,于用户进行交互,而在很多时候,我们的程序不需要于用户进行交互的页面,只需要在后台一直运行着,做一些事物的处理,例如,一个service可能会处理网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,Http的网络通信以及与服务器保持一个推送的连接,所有这些活动都是在后台进行。这个时候我们就可以用到Service。接下来我们就来试试如何使用Service
先创建一个项目:
创建一个Service
创建成功后在activity_main.xml中,写两个按钮
<Button android:id="@+id/btn_startservice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动service服务"/> <Button android:id="@+id/btn_stopservice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止service服务"/>
在MainActivity.calss 中
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); intent = new Intent(MainActivity.this,MyService.class); //点击启动service按钮 findViewById(R.id.btn_startservice).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //启动服务 startService(intent); } }); findViewById(R.id.btn_stopservice).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //停止服务 stopService(intent); } }); }
}
接下来我们运行项目
这个时候我们打开手机的“设置”,,然后找到“应用”,选择正在运行的应用,发现我们的应用并没有在其中
然后我们进入项目点击“启动Service服务”,然后再进入设置:
这个时候发现我们的项目正在运行
然后再次回到项目点击 “停止Service服务”,然后进入设置:
发现我们的项目又没了,,
通过这种方式我们可以把我们的程序运行在后台。
接下来我们进一步了解一下,,Service在后台怎么运行的,如何运行我们自己的代码。
我们让service在后台不断输出一个语句,来观察
在MyService类中重写一个方法,onStartCommand 这个方法在外界执行startService时就会执行。
然后在onStartCommand方法中写一个线程,来让它不断输出一个语句,每输出一句就休眠1秒钟。来看代码:
public class MyService extends Service {
public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service 82a8 . throw new UnsupportedOperationException("Not yet implemented"); } //这个会在外界执行startService时,就会执行 @Override public int onStartCommand(Intent intent, int flags, int startId) { new Thread(){ @Override public void run() { super.run(); while (true) { Log.e("service","服务正在运行..."); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); return super.onStartCommand(intent, flags, startId); }
}
效果:
这种时候我们停掉Activity,退出项目服务也不会停止。
这就是服务,我们可以用它在后台执行耗时操作
相关文章推荐
- UE4 行为树服务节点(Service)简单使用说明
- Android StartService(服务) 简单使用
- Sql Server Report Service 使用简单说明
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- 使用Axis发布简单的Web服务
- Log4j日志管理系统简单使用说明
- Log4j日志管理系统简单使用说明
- symbian中活动服务对象的一些简单的使用
- Log4j日志管理系统简单使用说明
- 使用SHELL命令来停止或者运行服务---service
- Log4j日志管理系统简单使用说明
- Log4j日志管理系统简单使用说明
- [webservices开发]使用XFire开发一个简单的web服务
- 使用Java Service Wrapper 把Java程序作为Windows系统服务
- 举一个简单例子来说明:如何在JSP中使用JavaBean
- 使用Microsoft提供的NTSVC.OCX控件,VB也可以将你的应用程序做成Service服务。
- CORBA Programming with TAO - 6.Naming Service(使用命名服务)
- MFC中SetWindowPos简单使用说明
- Log4j日志管理系统简单使用说明