生命周期及横竖屏切换时生命周期 启动模式 内存不足时,怎么保持Activity的一些状态,在哪个方法里面做具体操作?...介绍Activity、Service、Broadcast、BroadcastReceiver、Intent、IntentFilter 怎么在启动一个activity时就启动一个service 同一个程序不同的...如何将一个Activity设置成窗口的样式 如何退出Activity?如何安全退出已调用多个Activity的Application? Activity中如何动态的添加Fragment?...activity的启动过程 参考 不用Service,B页面为音乐播放,从A跳到B,再返回,如何使音乐继续播放? windows和activity之间关系?...Service与Activity怎么实现通信 Service有哪些启动方法,有什么区别,怎样停用Service? 什么是IntentService?有何优点?
默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。 如果某个应用组件启动且该应用已存在进程(因为存在该应用的其他组件),则该组件会在此进程内启动并使用相同的执行线程。...如果一个进程满足以下任一条件,即视为前台进程: 托管用户正在交互的 Activity(已调用 Activity 的 onResume() 方法) 托管某个 Service,后者绑定到用户正在交互的...Activity 托管正在“前台”运行的 Service(服务已调用 startForeground()) 托管正执行一个生命周期回调的 Service(onCreate()、onStart() 或 onDestroy...例如,如果前台 Activity 启动了一个对话框,允许在其后显示上一 Activity,则有可能会发生这种情况 托管绑定到可见(或前台)Activity 的 Service 可见进程被视为是极其重要的进程...4.后台进程 包含目前对用户不可见的 Activity 的进程(已调用 Activity 的 onStop() 方法)。
元素包含在清单当中,从而在应用程序从设备菜单中启动时执行该activity?...仔细检查文件名字符串。 将我们的I/O代码放置在一个独立的类当中。 尝试并获取与I/O代码相关的数据块。 向用户输出警告信息。...使用一个单独的进程、而不要利用用户界面进程进行数据获取。 在主activity类中的一个方法内获取数据。 将检索数据保存在SQLite数据库当中。 问题十四 以下哪种说法存在错误?...即使是在启动某service的activity停止运行之后、该service仍将继续处于运行状态。 除非用户利用后退按钮进行退出操作,否则activity将始终处于运行状态。...Intent Thread View Service 问题十六 当一款应用程序启动并处于resumed状态时,以下哪种回调方法不会执行?
广播接收器只能接收广播,对广播的通知做出反应,很多广播都产生于系统代码,如:时区改变的通知、电池电量不足、用户改变了语言偏好,或者开机启动等 广播接收器没有用户界面,但是它可以为它们接收到信息启动一个Activity...中,PlayMusicService中通过重写OnClickListener 接口onClick()方法实现对播放音乐的控制,把音乐各种操作用数字通过Intent传递给service 然后通过构造一个Intent...启动的 sendBroadcast(intent); 广播,通过实现onReceive()方法,解析Activity中Intent的Bundle数据。...的op数值决定启动context.startService(it); 服务 或 关闭context.stopService(it); 服务 4、Service中,处理BroadcastReceiver广播启动的...onDestroy(),停止并释放mediaPlayer音乐资源,如果当执行context.stopService()时调用此方法 5、Activity中,onClick()函数中close与exit
meta-data:数据格式 uses-library:第三方类库 Service中定义了一系列生命周期方法: IBinder onBind(Intent intent):该方法是Service子类必须实现的方法...只是重写了Service组件的onCreate()、onStartCommand()、onDestroy()、onBind()等方法,重写这些方法时只是打印了一个字符串。...绑定本地Service并与之通信——bindService()方式启动 如果Service和访问者之间需要进行方法调用或者交换数据,则应该使用bindService()和unbindService()方法启动...类实现了onBind()方法,该方法返回一个可访问该Service状态数据(count)的IBinder对象,该对象将被传给该Service的访问者。...当Activity调用bindService()绑定一个已通过startService()启动的Service时,系统只是把Service内部IBinder对象传给Activity,并不会把该Service
当startActivity方法被调用时,将触发解析myIntent的动作,该机制提供了两个关键好处: * Activity能够重复利用从其他组件中以Intent形式产生的请求。...另外,还可以通过使用Context.bindService()方法连接到一个Service上(如果这个Service当前还没有处于启动状态,则将启动它)。...其实Activity类中还有很多类似于onCreate的方法,比如onStart、onResume、onPause、onDestroy等,而这些方法都是系统自动调用,从名字上大概就可以看出这是一些关于生命周期的方法...这里我们看到,当程序从Activity01界面进入Activity02界面时,并不是马上将Activity01销毁,而是待Activity02启动之后将Activity01停止并销毁。...这里我们看到,当程序从Activity02界面返回Activity01界面时,并不是马上将Activity02销毁,而是待Activity01启动之后将Activity02停止并销毁。
· onSaveInstanceState :系统调用该方法,允许活动保存之前的状态,比如说在一串字符串中的光标所处的位置等。...中的数据 public int delete(Uri, String, String[]) 用于从指定Uri的ContentProvider中删除数据 public String getType...(Uri) 用于返回指定的Uri中的数据的MIME类型 *如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头。 ...*如果要操作的数据属于非集合类型数据,那么MIME类型字符串应该以vnd.android.cursor.item/开头。 ...public int delete(Uri uri, String selection, String[] selectionArgs) 用于从指定Uri的ContentProvider中删除数据。
三、 Service生命周期 Service的生命周期并不像Activity那么复杂,它只继承了onCreate()、onStart()、onDestroy()三个方法 当我们第一次启动Service...这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法。...它可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己,只要调用一次stopService()方法便可以停止服务,无论调用了多少次的启动服务方法...只有少数的前台进程可以在任何给定的时间内运行,销毁他们是系统万不得已的、最后的选择——当内存不够系统继续运行下去时。...3 一个服务进程是一个通过调用startService()方法启动的服务,并且不属于前两种情况。尽管服务进程没有直接被用户看到,但他们确实是用户所关心的,比如后台播放音乐或网络下载数据。
作用 指定当前组件要完成的动作 在 Android 不同组件间 传递数据 Activity、Service、BroadcastReceiver之间的通信载体 = Intent 下面,将根据...通过Activity类的startActivity()执行该意图操作(接收一个Intent对象) // 将构建好的Intent对象传入该方法就可启动目标Activity startActivity...使用2:不同组件间 传递数据 使用方法 在当前Activity把要传递的数据暂存在Intent中(通过PutExtra() )、在新启动的Activity中取出Intent中的数据 可传递的数据类型...数据传递代码 // 目的:将FristActivity中的一个字符串传递到SecondActivity中,并在SecondActivity中将Intent对象中的数据(FristActivity传递过来的数据...; //putExtra()方法接收两个参数:第一个是键,第二个是值,代表真正要传递的数据。
Service可以分为以下两种类型: Started(启动):当Activity通过startService()方法启动服务时,服务处于started状态。一旦启动,就算组件被销毁也不会停止。...只有自身调用stopSelf()或者其他组件调用stopService()才停止 Bound(绑定):当Activity通过bindService()方法启动服务时,服务处于bound状态。...可以实现如下任务: 创建区别于主线程的线程来执行发送到onStartCommand()方法的全部Intent 创建工作队列,每次传递一个Intent到onHandleIntent() 所有请求处理完毕后停止服务...也就是自动生成的return语句不能改 2.继承Service类 使用IntentService将简化启动服务的实现,但如果要处理多线程,则可以继承Service来处理各个Intent 对于每次启动的请求...包含客户端能调用的公共方法 返回当前Service实例,其中包含客户端能调用的方法 返回服务管理的其他类的实例 (2)从onBind()回调方法中返回Binder实例 (3)在客户端,从onServiceConnected
,则不会回调A的onStop; 如何将一个 Activity 设置成窗口的样式?...1.2 启动模式 ---- LaunchMode 说明 standard 系统在启动它的任务中创建 activity 的新实例 singleTop 如果activity的实例已存在于当前任务的顶部,则系统通过调用其...但如果 activity 的实例已存在于单独的任务中,则调用其 onNewIntent() 方法,其上面的实例会被移除栈。...从名称来看是跟栈相关的类,其实它是一个管理类,用来管理系统所有Activity的各种状态。...2.2.3 同时使用startService()启动服务、BindService()绑定服务的生命周期 在Activity中可以通过startService和bindService方法启动Service
作用 指定当前组件要完成的动作 在 Android 不同组件间 传递数据 Activity、Service、BroadcastReceiver之间的通信载体 = Intent 下面,将根据Intent...中的数据 方法1:putExtra() // 目的:将FristActivity中的一个字符串传递到SecondActivity中,并在SecondActivity中将Intent对象中的数据(FristActivity...通过putExtra()方法传递一个字符串到SecondActivity; // putExtra()方法接收两个参数:第一个是键,第二个是值(代表真正要传递的数据) intent.putExtra...启动Activity startActivity(intent); // 2. 数据取出(在被启动的Activity中) // a....启动Activity startActivity(intent); // 2. 数据取出(在被启动的Activity中) // a.
Service和Activity一样,也有一个从启动到销毁的过程,但是Service的这个过程比Activity的要简单的多。...通过startService方式启动的Activity的生命周期 Service从启动到销毁 只会经历如下三个阶段 创建服务 开始服务 销毁服务 一个服务需要继承自android.app.Service...举个例子,某个Service需要定时从服务器获取最新数据:通过一个定时器每隔指定的N分钟让定时器启动Service去获取服务端的最新数据。...假设Service在从服务器获取最新数据的过程中被Android系统强制杀掉,Service不会再重新创建,这也没关系,因为再过N分钟定时器就会再次启动该Service并重新获取数据。...---- 开机启动Service 详见 Service 开机接受广播,启动服务的问题 ---- 判断Service是否已注册 Android SDK 并没有直接提供API来判断某个Service是否已经注册
通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。Intent 描述了要启动的 Activity,并携带了任何必要的数据。...Intent 描述了要启动的服务,并携带了任何必要的数据。 如果服务旨在使用客户端-服务器接口,则通过将 Intent 传递给 bindService(),可以从其他组件绑定到此服务。...注意:为了确保应用的安全性,启动 Service 时,请始终使用显式 Intent,且不要为服务声明 Intent 过滤器。...找到匹配项之后, [3] 该系统通过调用匹配 Activity(Activity B)的 onCreate() 方法并将其传递给 Intent,以此启动匹配 Activity。...b)action 指定要执行的通用操作(例如,“查看”或“选取”)的字符串。 对于广播 Intent,这是指已发生且正在报告的操作。
三、 Service生命周期 Service的生命周期并不像Activity那么复杂,它只继承了onCreate()、onStart()、onDestroy()三个方法 当我们第一次启动Service时...这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法。...它可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己,只要调用一次stopService()方法便可以停止服务,无论调用了多少次的启动服务方法...> 五、 代码解析 1、Activity中,PlayMusicService中通过重写OnClickListener 接口onClick()方法实现对播放音乐的控制,把音乐各种操作用数字通过Intent...3 一个服务进程是一个通过调用startService()方法启动的服务,并且不属于前两种情况。尽管服务进程没有直接被用户看到,但他们确实是用户所关心的,比如后台播放音乐或网络下载数据。
三、 Service生命周期 Service的生命周期并不像Activity那么复杂,它仅仅继承了onCreate()、onStart()、onDestroy()三个方法 当我们第一次启动Service...这里须要注意的是,假设Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法。...它能够通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己,仅仅要调用一次stopService()方法便能够停止服务,不管调用了多少次的启动服务方法...接口onClick()方法实现对播放音乐的控制,把音乐各种操作用数字通过Intent传递给service 然后通过构造一个Intent , intent = new Intent(“com.homer.service.musicService...3 一个服务进程是一个通过调用startService()方法启动的服务,而且不属于前两种情况。虽然服务进程没有直接被用户看到,但他们确实是用户所关心的,比方后台播放音乐或网络下载数据。
三、 Service生命周期 Service的生命周期并不像Activity那么复杂,它只继承了onCreate()、onStart()、onDestroy()三个方法 当我们第一次启动Service...这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法。...它可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己,只要调用一次stopService()方法便可以停止服务,无论调用了多少次的启动服务方法...接口onClick()方法实现对播放音乐的控制,把音乐各种操作用数字通过Intent传递给service 然后通过构造一个Intent , intent = new Intent("com.homer.service.musicService...3 一个服务进程是一个通过调用startService()方法启动的服务,并且不属于前两种情况。尽管服务进程没有直接被用户看到,但他们确实是用户所关心的,比如后台播放音乐或网络下载数据。
Activity那么复杂,它只继承了onCreate()、onStart()、onDestroy()三个方法 当我们第一次启动Service时,先后调用了onCreate()、onStart()这两个方法...这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法。...它可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己,只要调用一次stopService()方法便可以停止服务,无论调用了多少次的启动服务方法...> 五、代码解析 1、Activity中,PlayMusicService中通过重写OnClickListener 接口onClick()方法实现对播放音乐的控制,把音乐各种操作用数字通过Intent...3 一个服务进程是一个通过调用startService()方法启动的服务,并且不属于前两种情况。尽管服务进程没有直接被用户看到,但他们确实是用户所关心的,比如后台播放音乐或网络下载数据。
1.2 远程服务(Remote Service) > 该服务是独立进程,对应进程名格式为所在包名加上指定的 android:process 字符串。...: 定义一个类继承 service manifest.xml文件中配置 service (当然as一键创建不用配置) 使用context的startService(Intent)方法启动服务 不使用时...`的`ContentProvider` 中表名 为`User` 中的 `id`为1的数据 // 特别注意:URI模式存在匹配通配符* & # // *:匹配任意长度的任何有效字符的字符串 // 以下的...1.onCreaete() 初始化内容提供器,通常会在这里完成,对数据库的创建和升级数据库,返回true,和false, 2.query() 从内容提供器中查询数据,使用uri参数确定来查询那个那张表...5.delete() 从内容提供器中删除数据2,使用uri参数来确定删除哪一样表中的数据,selection和selectionArgs参数用于约束删除那些行,被删除的行数将作为返回值返回。
3.既然Service和Activity是通过bind去绑定的,说明当悬浮窗显示的时候,通话Activity虽然不可见但仍在运行。...如何将acitivity置于后台 其实很简单,我们调用一个方法即可 moveTaskToBack(true); 这个方法的含义就是将当前的任务战置于后台,so,为什么我要在第二个Activity中实现的原因之一...,因为默认的Activity的启动模式是标准模式,而上面方法会将任务栈置于后台而不是一个单独的Activity,所以我们为了显示悬浮窗时不影响操作软件的其他功能,我们要将通话页面的Activity设置为...singleInstance,这样当调用上面方法的时候只是将通话页面所在的Activity栈置于后台,如果你还不了解启动模式可以移步至上一篇文章:Activity的启动模式。...这个问题简单的说就是,如果你在通话页面呼叫某人,通话过程中按Home键,然后电话挂断,此时你从任务程序中切回应用,会再次呼叫这个人,也就是这种状态下重新回到了onCreate方法。
领取专属 10元无门槛券
手把手带您无忧上云