搭建 Android 平台注意事项
2010-04-22 16:08:00 来源:WEB开发网GOOGLE开发出来的开放手机联盟的成立和 Android 的推出是对现状的重大改变,在带来初步效益之前,这个系统是个很强大而且还是费用很好的一个Android平台,为了让这些Android平台运行的更好。
类似于win32程序里的WinMain函数,Android自然也有它的程序入口点。它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activity节点下有这样一个intent-filter,其action为 android.intent.action.MAIN,
Android平台指定为 android.intent.category.LAUNCHER,这就指明了这个activity是作为入口activity,系统查找到它后,就会创建这个Android平台实例来运行,若未发现就不启动(你可以把MAIN改名字试试)。然后调用 managedQuery函数查询出所有的日志信息.
这里第一个参数就是上面设置的”contentcom.google.provider.NotePad/notes”这个URI,即 notes数据表。PROJECTION 字段指明了结果中所需要的字段,Notes.DEFAULT_SORT_ORDER 指明了结果的排序规则。
实际上managedQuery并没有直接去查询数据库,而是通过Content Provider来完成实际的数据库操作,这样就实现了逻辑层和数据库层的分离。查询出日志列表后,构造一个CursorAdapter,并将其作为 List View的数据源.
从而在界面上显示出日志列表。可以看到,第二个参数是R.layout.noteslist_item,打开对应的 noteslist_item.xml文件。那么,上面这句startActivity(new Intent(Intent.ACTION_EDIT, uri))执行后会发生什么事情呢?这时候Android系统就跳出来接管了。
它会根据intent中的信息找到对应的activity,在这里找到的是NoteEditor这个activity,然后创建这个 activity的实例并运行。那么,Android又是如何找到NoteEditor这个对应的activity的呢?这就是intent发挥作用的时刻了
1. < intent-filter android:label="@string/resolve_edit" >
2. < action android:name="android.intent.action.VIEW" / >
3. < action android:name="android.intent.action.EDIT" / >
4. < action android:name="com.android.notepad.action.EDIT_NOTE" / >
5. < category android:name="android.intent.category.DEFAULT" / >
6. < data android:mimeType="vnd.android.cursor.item/vnd.google.note" /
赞助商链接