Android ---- Context

本文详细介绍了Android中的Context概念及其应用场景,包括Context的含义、主要方法、继承关系等内容,并解释了Application Context与Activity Context的区别。

Context字面意思上下文,位于framework package的android.content.Context中,很多方法需要通过  Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的 实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。

 

Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。

 

两种类型的Context

 

在android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。

 

Context的主要方法

 

public abstract

1、Context getApplicationContext()

2、ApplicationInfo getApplicationInfo()

3、ContentResolver getContentResolver ()

4、PackageManager getPackageManager ()

5、String getPackageName ()

6、Resources getResources ()

7、SharedPreferences getSharedPreferences (String name, int mode)

8、String getString (int resId)

9、Object getSystemService (String name)

10、String[] databaseList()

11、boolean deleteDatabase()

12、boolean deleteFile()

13、String[] fileList()

14、AssetsManager getAssets()

15、File getCacheDir()

16、File getDatabasePath(String name)

17、File getDir(String name, int mode)

18、File getFilesDir()

19、File getExternalCacheDir()

20、File getExternalFilesDir(String type)

21、CharSequence getText(int resId)

22、FileInputStream openFileInput(String name)

23、FileOutputStream openFileOutput(String name)

24、SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory)

25、SQLiteDatabasse openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler)

26、Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter)

27、Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)

28、void sendBroadcast(Intent intent)

29、void sendBroadcast(Intent intent, String receiverPermission)

30、void sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcaseReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtra)

31、void sendOrderedBroadcast(Intent intent, String receiverPermission)

32、void sendStickyBroadcast(Intent intent)

33、void sendStickyOrderedBroadcast(Intent intent, BroadcastReceiver resultReceiver, Handler schedule, int initialCode, String initialData, Bundle initialExtra)

34、void startActivities(Intent[] intents)

35、void startActivity(Intent intent)

36、CompenentName startService(Intent service)

37、boolean stopService(Intent service)

38、void unbindService(ServiceConnection conn)

39、void unregisterReceiver(BroadcastReceiver receiver)

 

 

Context 数目的计算:

 

总Context实例个数 = Service个数+ Activity个数+ 1(Application对应的Context实例)

 

Context类的继承关系

 

120711141690351

 

Context类    路径: /frameworks/base/core/java/android/content/Context.java

转载于:https://www.cnblogs.com/android-madan/p/3403014.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值