- 浏览: 50522 次
文章分类
- 全部博客 (25)
- Android (19)
- startActivityForResult() (1)
- Intent (3)
- HTML (1)
- onCreate (1)
- Button (3)
- OnClick (3)
- Activity (2)
- savedInstanceState (1)
- Service (2)
- message (1)
- Notification (1)
- Broadcast (1)
- SQLite (1)
- SharePreferences (1)
- Galaxy 9300 (1)
- 刷机 (1)
- root (1)
- ContentProvider (1)
- 笔记本 (1)
- 散热 (1)
- 算法 (3)
- C (4)
- socket (0)
- java (0)
最新评论
Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。
使用context.startService() 启动Service是会会经历:
context.startService() ->onCreate()- >onStartCommand()->onStart()->Service running
context.stopService() | ->onDestroy() ->Service stop
如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。
stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。
所以调用startService的生命周期为:onCreate --> onStart(可多次调用) --> onDestroy
下面代码为startService()方法启动服务:
MainActivity:
package com.test.servicedemo; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; //import android.view.MenuItem; import android.view.View; import android.widget.Button; //import android.support.v4.app.NavUtils; public class MainActivity extends Activity { private Button btn_Start; private Button btn_Stop; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_Start = (Button) findViewById(R.id.StartService); btn_Stop = (Button) findViewById(R.id.StopService); btn_Start.setOnClickListener(listener); btn_Stop.setOnClickListener(listener); } private View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ExampleService.class);//不可以把这句写在方法外面 // TODO Auto-generated method stub switch (v.getId()) { case R.id.StartService: startService(intent); break; case R.id.StopService: stopService(intent); break; } } }; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
ExampleService:
package com.test.servicedemo; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class ExampleService extends Service { private static final String TAG = "ExampleService"; @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); Log.i(TAG, "ExampleService-->onCreate"); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG, "ExampleService-->onDestroy"); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); Log.i(TAG, "ExampleService-->onStart"); } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } }
发表评论
-
ContentProvider
2012-08-09 14:43 855ContentProvider学习笔记 ContentPro ... -
Galaxy 9300 刷机和获取root权限
2012-08-08 14:19 1618刷机和ROOT是两个不同但是很类似的动作。 刷机应该就 ... -
SharedPreferences 存储
2012-07-27 20:02 929SharedPreferences是Android平台 ... -
SQLite 存储
2012-07-27 10:33 804SQLite是一种轻量级的,嵌入式的数据库系统,它占用的资源非 ... -
Android Broadcast 广播
2012-07-23 10:47 946从现实生活中理解广播机制 一听到广播我们第一感觉就会联 ... -
Status Notification
2012-07-22 18:12 1353Status Notification是作用是在页眉的位置,提 ... -
Android Message机制
2012-07-20 11:01 1211参考链接http://www.cnblogs.com/hnra ... -
Android Service之bindService()
2012-07-17 14:37 1224http://www.cnblogs.com/onlylitt ... -
Activity_savedInstanceState
2012-07-14 10:31 4025假设有两个Activity,分别是MainActivity,S ... -
Activity生命周期
2012-07-13 11:24 763Activity的生命周期图如上所示 用一个实例来测试 ... -
ButtonDemo_OnClick_2
2012-07-13 00:47 634public void onCreate(Bundle ... -
intentDemo_2
2012-07-13 00:45 784<manifest xmlns:android=& ... -
intentDemo_1
2012-07-13 00:45 605package com.test.intentdemo; ... -
ButtonDemo_OnClick_3
2012-07-13 00:45 600package com.test.buttondemo; ... -
ButtonDemo_OnClick_1
2012-07-12 22:51 900public class MainActivity ex ... -
Android开发——关于onCreate的解读
2012-07-12 22:48 622在AndroidManifest.xml文件中的< ... -
startActivityForResult()的用法
2012-07-12 22:43 1616参考链接:http://www.cnblogs.com/mub ... -
Intent传递数据从一个Activity到另一个Activity
2012-07-12 21:19 11831MainActivity package com.te ...
相关推荐
本篇文章将深入探讨如何使用`startService()`方法来启动Android服务。 Service的启动方式主要有两种:`startService()`和`bindService()`。这里我们主要关注`startService()`,它是异步的,适合用于执行一次性或...
在Android应用开发中,Service是四大组件之一,它在后台执行长时间运行的操作,不与用户交互。本篇文章将深入探讨Android中的Start Service,这是一种启动Service的方式,它关注的是任务的启动而不是用户界面的反馈...
本示例将探讨“startService”方式启动Android服务的基本概念、工作原理以及如何实现一个简单的服务示例。 首先,我们需要理解`startService()`这个方法。当你调用`startService()`时,Android系统会启动指定的服务...
在Android应用开发中,Service是四大组件之一,用于在后台长时间运行操作,比如播放音乐、网络通信等。然而,如果不加以控制,用户或者系统可能会多次启动同一个Service,导致不必要的资源消耗和服务的异常行为。本...
当调用 `startService()` 时,Android系统会创建Service实例(如果尚未创建),然后调用Service的 `onStartCommand()` 方法。这个方法是Service执行任务的核心,开发者在这里实现具体的业务逻辑。 ```java public ...
"Android系统在新进程中启动自定义服务过程(startService)的原理" 在 Android 系统中,startService 函数是一个非常重要的函数,它允许开发者在新进程中启动自定义服务。这项技术可以将一些计算型逻辑从主进程中...
在Android开发中,Service是四大组件之一,它在后台运行,不与用户界面直接交互,常用于执行长时间的任务,如播放音乐、网络通信等。本篇文章将深入解析"android service 简单实例源代码",帮助你理解如何在Android...
`startService` 是 Android 中启动 `Service` 的常见方式之一。当你调用 `startService()` 方法时,系统会创建一个 `Service` 实例,并执行 `onStartCommand()` 方法。这个方法是 `Service` 开始执行任务的地方。`...
本篇文章将深入探讨`startService`类型的Android Service,通过一个简单的实例来展示其工作原理和使用方法。 `Service`分为两种主要类型:`Start Service`和`Bound Service`。`Start Service`主要用于执行非交互式...
在Android系统中,`startService`是一个至关重要的方法,它用于启动一个后台服务(Service)。服务是Android四大组件之一,允许应用程序在没有用户界面的情况下执行长时间运行的操作。本篇文章将深入探讨`start...
`startService()`主要用于启动一个无需与调用者直接交互的服务,服务一旦启动就会在后台持续运行,直到服务自行停止或系统因资源限制而杀死服务。`com.njupt.zhb.MusicPlay`这个文件名可能表示这是一个播放音乐的...
本文将深入探讨“Android Service之bound实现”,理解如何通过绑定服务(Bound Service)来创建一个与应用程序组件交互的服务。 首先,我们要了解服务的两种基本类型:Start Service和Bound Service。Start Service...
Service的启动有两种方式:通过`startService()`和`bindService()`。`startService()`使Service在后台运行,直到`stopSelf()`或`stopService()`被调用;`bindService()`则创建一个与调用者绑定的服务,服务在客户端...
在Android应用开发中,Service是四大组件之一,它在后台长时间运行,不依赖于任何用户界面,用于执行长时间运行的任务,如播放音乐、网络通信等。这篇博客"Android Service深入解析Demo"通过实例深入讲解了Service的...
用AndroidStudio编写,里面的Activity有三个按钮,用startService函数分别启动三个服务,一 个是通过继承Service类实现的服务,一个是通过继承Service类在里面定义一个线程来处理服务,还有一个是通过继承...
在AndroidManifest.xml中声明Service后,我们可以通过Context.startService()方法启动Service。服务运行期间,应用可以随时调用stopService()来停止服务。 2. 绑定方式的Service 绑定方式的Service主要用于需要与...
4. 使用`startService()`或`bindService()`方法启动或绑定到Service。 接下来是Remote Service,它是运行在不同应用程序进程中的服务,通常用于跨进程通信(IPC)。Remote Service通过AIDL(Android Interface ...
实例详解Android中startService()和bindService()的区别。 说明详见http://blog.csdn.net/a343902152/article/details/50857316
在`Activity`中启动`Service`,通常使用`startService()`方法,需要传入一个`Intent`对象,`Intent`中可以携带数据。例如: ```java Intent intent = new Intent(this, MyService.class); // 如果需要传递数据,...
startService()用于一次性启动服务并执行任务,而bindService()则用于与服务建立连接,进行双向通信。在Service中,我们可以创建一个下载任务,利用AsyncTask或者自定义线程去处理网络请求,避免阻塞主线程。 其次...