Dan*_*iel 3 java android broadcastreceiver android-context
在以下onReceive方法中传递的上下文是什么BroadcastReciver:
public void onReceive (Context context, Intent intent)
Run Code Online (Sandbox Code Playgroud)
根据官方文件:
接收器运行的上下文.
一点点研究给出了以下结果......
对于静态接收器
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("PANKAJ", "Context class " + context.getClass().getName());
Log.e("PANKAJ", "Application Context class "
+ context.getApplicationContext().getClass().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了以下日志
08-05 06:51:33.448: E/PANKAJ(2510): Context class android.app.ReceiverRestrictedContext
08-05 06:51:33.448: E/PANKAJ(2510): Application Context class android.app.Application
Run Code Online (Sandbox Code Playgroud)
对于bynamic接收器(注册成活动MainActivity)之类的
private BroadcastReceiver myReceiver = new BroadcastReceiver() {
public void onReceive(android.content.Context context, Intent intent) {
Log.e("PANKAJ", "Context class " + context.getClass().getName());
Log.e("PANKAJ", "Activity Context class "
+ MainActivity.this.getClass().getName());
Log.e("PANKAJ", "Application Context class "
+ context.getApplicationContext().getClass().getName());
}
};
Run Code Online (Sandbox Code Playgroud)
我得到了以下日志
08-05 06:53:33.048: E/PANKAJ(2642): Context class com.example.testapp.MainActivity
08-05 06:53:33.048: E/PANKAJ(2642): Activity Context class com.example.testapp.MainActivity
08-05 06:53:33.048: E/PANKAJ(2642): Application Context class android.app.Application
Run Code Online (Sandbox Code Playgroud)
因此,当文档中的语句表明接收器正在运行的上下文时.
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |