Android Context 是一个抽象基类,它提供了许多应用程序相关的功能。以下是 Context 可以执行的一些操作:
- 获取系统服务(如电话、短信、联系人等):
Context.getSystemService(Class<T> service)
- 注册广播接收器(BroadcastReceiver):
Context.registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
- 发送广播(Broadcast):
Context.sendBroadcast(Intent intent)
- 注册内容观察者(ContentObserver):
Context.getContentResolver().registerContentObserver(Uri uri, boolean notifyForDescendents, String selection, String[] selectionArgs)
- 获取资源(如字符串、图片、布局等):
Context.getResources().getString(R.string.example_string)
- 获取主题(Theme):
Context.getTheme()
- 获取包名(PackageName):
Context.getPackageName()
- 获取资源 ID:
Context.getResources().getIdentifier(String name, String type, String package)
- 启动 Activity:
Context.startActivity(Intent intent)
- 启动服务(Service):
Context.startService(Intent intent)
- 绑定服务(Service):
Context.bindService(Intent intent, ServiceConnection conn, int flags)
- 取消绑定服务(Service):
Context.unbindService(ServiceConnection conn)
- 创建对话框(如警告框、进度框等):
Context.showDialog(int id, Dialog dialog)
- 获取文件路径:
Context.getFilesDir()
或Context.getCacheDir()
- 创建文件提供者(FileProvider):
Context.getContentResolver().registerContentProvider(String authority, ProviderInfo info)
- 注册应用生命周期监听器:
Context.registerComponentCallbacks(ComponentCallbacks callback)
- 获取应用信息(如版本名、包名等):
Context.getPackageManager().getApplicationInfo(String packageName, int flags)
这些操作只是 Context 提供的部分功能,还有其他一些操作可以根据需要进行使用。在实际开发中,我们通常使用 Activity 或 Application 等类来执行这些操作,而不是直接使用 Context。