300_不能使用ApplicationContext

来源:互联网 发布:淘宝卖家最迟发货时间 编辑:程序博客网 时间:2024/05/16 19:50




不能使用ApplicationContext






有些情况不能使用ApplicationContext


1.创建展示dialog
        Dialog dialog = new Dialog(getApplicationContext());
        dialog.show();


报错:
android.view.WindowManager$BadTokenException: 
Unable to add window -- token null is not for an application










2.启动activity
getApplicationContext().startActivity(new Intent(this, NewActivity.class));


报错:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?


要这样:
        Intent intent = new Intent(this, NewActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getApplicationContext().startActivity(intent);
但是不推荐这样做












3.使用LayoutInflater或者调用inflate()
View view = View.inflate(getApplicationContext(), R.layout.view, null);
或者
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.view, null);


这两种使用applicationContext是合法的
但是会使用系统默认的主题样式,如果自定义了样式有可能失效







0 0
原创粉丝点击