我有以下课程:
public class Mediator extends Application
{
private HTTPSender sender;
public Mediator()
{
sender = new HTTPSender();
}
public void sendMessage()
{
}
}
现在在我的活动中,请执行以下操作:
public class Contact extends ActionBarActivity {
private Mediator mediator;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.mediator = (Mediator) getApplication();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
}
当我运行我的应用程序时,我得到以下信息:
Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to dk.AnApp.app.Mediator
谁能告诉我为什么我无法将其转换为扩展应用程序的类?
最佳答案
在清单中,您应该声明Mediator
是application
类,以便将其实例化为应用程序。
例如,
<application
android:name="dk.AnApp.app.Mediator"
...
Reference
这样可以处理异常,但不能保证您的
Mediator
类存在充分的理由(如CommonsWare在注释中指出的那样)。