`
huaxin803
  • 浏览: 113324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
像Activity(和其他的组件)一样,所有的服务都必须在应用程序的清单文件中声明。 要声明服务就要给<application>元素添加一个<service>子元素,例如: <manifest ... > ... <application ... > <service android:name=".ExampleService" /> ... </application> </manifest> 在<service>元素 ...
要创建一个服务,你必须创建一个Service类(或一个既存的Service子类)的子类。在你的实现中,你需要重写一些处理服务生命周期关键特征的回调方法,并且给组件提供一种合适的绑定服务的机制。需要重写的重要的回调方法如 ...
一个服务就是一个能够在后台执行长时操作的应用程序组件,并且不提供用户界面。一个应用程序组件能够启动一个服务,即使用户切换到另一个应用程序,这个服务也会继续在后台运行。另外,一个组件能够绑定一个跟它交 ...
你能够通过用“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”分别给Intent过滤器指定行为和类别,从而创建一个Activity作为一个任务的入口。例如: <activity ... > <intent-filter ... > <action android:name="android.intent.action.MAIN" /> <category android:name="android.i ...
如果用户长时间的离开一个任务,那么系统会清除这个任务根Activity以外的所有Activity。当用户再次返回这个任务时,只有根Activity被存储。系统行为的这种方式是因为经过长时间以后,用户在返回这个任务之前可能已经放弃它们 ...
亲缘关系是指Activity愿意属于哪个任务。默认,来自同一个应用程序的所有的Activity彼此有一个亲缘关系。因此,默认情况下在同一个应用程序中的所有Activity都应该属于同一个任务。但是,你能够给一个Activity修改默认的亲缘关系。Activity被定义在不同的应用程序中能够共享一个亲缘关系,或者Activity被定义在同一个应用程序中能够跟不同任务的亲缘关系进行关联。 你能够使用<activity>元素的taskAffinity属性来修改任意给定的Activity的亲缘关系。 taskAffinity属性需要一个字符串值,它必须是在<manifest ...
Linux下的关机与重启的命令有多种,每种方式略有些不同,除非有特别紧急的情况发生,否则不要通过直接关闭电源来关机,这可能会导致数据丢失。 1. shutdown:妥善的停机方式 shutdown 是关机或重启系统最安全的方式。 shutdown ...
Android通过把所有的已启动的Activity依次放到同一个后进先出的堆栈里来进行管理,对于大多数应用程序来说这种方法能够很好的工作,并且你不必担心Activity是如何跟任务关联的或者他们是如何存在回退堆栈中的。但是,你可能决定要打破这种通常的行为。或许你想要应用程序中的一个Activity在启动的时候开启一个新的任务(而不是放在当前的任务中);或者当你启动一个Activity时,你想使用之前既存的实例(而不是在回退堆栈的顶部创建一个新的实例);或者你想在用户离开这个任务时清除回退堆栈中根Activity以外的所有Activity。 你能够使用<activity>清单元素 ...
在Activity被终止时保留Activity的状态是系统的默认行为。这样,当用户返回到之前的Activity时,用户界面会显示它们离开时的样子。但是在Activity被销毁和重建的场景中应该主动的使用回调方法保留Activity的状态。 当系统终止一个Activity时(如一个新的Activity启动或这个任务被转移到后台),如果需要回收系统内存,那么系统可能完全的销毁这个Activity。当这种情况发生时,有关Activity状态的信息就会丢失。即使这种情况发生了,系统依然知道这个Activity在回退堆栈中位置,但是在Activity被带到堆栈的顶部时,系统必须重新创建它(而不是恢复 ...
一个应用程序通常包含了多个Activity,每个Activity都应该围绕一个用户能够执行的特定动作类型来进行设计,并且能够启动其他的Activity。例如,一个电子邮件的应用程序可能有一个用于显示新邮件列表的Activity。当用户选择一个 ...
这个例子是在Fragment中显示一个ListView的完整实现,ListView中包含针对通讯录内容提供器的查询结果。它使用一个CursorLoader来管理基于内容提供器的查询。 因为这个应用程序访问了用户的通讯录,因此它的清单文件中必须包含READ_CONTACTS许可。 public static class CursorLoaderListFragment extends ListFragment implements OnQueryTextListener, LoaderManager.LoaderCallbacks<Cursor> { ...
LoaderManager.LoaderCallbacks是一个让客户与LoadManager进行交互的回调接口。装载器,尤其是CursorLoader装载器,被期望用来保存被终止后的数据,这样就允许应用程序在Activity之间或Fragment的onStop()和onStart()方法之间进行切换时保存数据,以便在用户返回应用程序时,它们不需要因数据重载而等待。使用LoaderManager.LoaderCallbacks()的回调方法就知道在什么时候要创建一个新的装载器,并且告诉应用程序什么时候是终止使用装载器数据的时间。 LoaderManager.LoaderCallbacks接 ...
在使用initLoader()方法时,如果指定ID的装载器存在,就使用这个既存的装载器,否则会创建一个新的。但是有些时候你会想要废弃旧的数据并重启装载器。 你可以使用restartLoader()方法来废弃旧的数据。例如,SearchView.OnQueryTextListener的实现就会在用户查询改变时重启装载器。装载器需要重启以便能够使用修正后的搜索过滤器来进行新的查询,如: public boolean onQueryTextChanged(String newText) { // Called when the action bar search text ...
LoaderManager管理Activity或Fragment内部的一个或多个装载器实例,每个Activity或Fragment只有一个LoaderManager对象。 通常在Activity的onCreate()方法或Fragment的onActivityCreated()内初始化一个装载器,如: // Prepare the loader. Either re-connect with an existing one, // or start a new one. getLoaderManager().initLoader(0, null, this);initLoade ...
这一节描述了在Android应用程序中如何使用装载器,使用装载器的应用程序通常包括以下内容: 1.一个Activity或Fragment; 2.一个LoaderManager实例; 3.一个用于加载通过ContentProvider保存的数据的CursorLoader对象,也可以是你自己实现的用于加载其他类型数据的Loader或AsyncTaskLoader类的子类。 4.一个LoaderManager.LoaderCallbacks相关的实现,这是你创建新的装载器和管理既存装载器引用的地方; 5.一个显示装载器数据的方法,如一个SimpleCursorAdapte ...
Global site tag (gtag.js) - Google Analytics