我可以知道,我总是可以安全Context地Activity进入View吗?
View {
Activity activity = (Activity)this.getContext();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,它一直很好.我想知道,上面的代码会失败吗?
小智 57
据我所知,它并不总是安全的,因为上下文也可以从os传递给Service,BroadcastReceiver等.但是,几乎在某种情况下,这不是问题.只需查看此代码即可
if(context instanceof Activity)
Run Code Online (Sandbox Code Playgroud)
随意使用.
我认为您可以使用以下代码段:
/**
* Get activity instance from desired context.
*/
public static Activity getActivity(Context context) {
if (context == null) return null;
if (context instanceof Activity) return (Activity) context;
if (context instanceof ContextWrapper) return getActivity(((ContextWrapper)context).getBaseContext());
return null;
}
Run Code Online (Sandbox Code Playgroud)
虽然我无法想到这种情况,但我认为这不是一个好主意,原因有两个:
View?| 归档时间: |
|
| 查看次数: |
18611 次 |
| 最近记录: |