我正在寻找有关编写自己的应用程序类的信息。在网上的许多教程中我看到了以下代码:
class myapp extends Application
{
private static myapp mm;
private Context context;
public Context getContext()
{
return getApplicationContext();
}
public myapp getmyapp()
{
if(mm==null)
mm=new myapp();
return mm;
}
}
获取myapp和getApplicationContext的对象以及使用myapp的对象和使用上下文对象的位置有什么区别。我只想清除这些对象的使用概念 谢谢 tejinder
答案 0 :(得分:1)
该代码完全错误:
public myapp getmyapp()
{
if(mm==null)
mm=new myapp();
return mm;
}
只有Android框架才能实例化Application对象。我的意思是,您可以致电new
,但该对象不会被联系起来"到底层框架
要获得应用程序对象的静态引用,您应该按如下方式执行:
class MyApp extends Application{
// I fixed the names to follow some Java convention
private static MyApp instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static MyApp getMyApp(){
return instance;
}
关于上下文,代码没有错,但根本没有任何意义。这是因为Application
对象已经是application context
。所以没有必要要求它。
上下文是Android应用程序访问资源,文件系统特定文件夹,权限等的原因(我所说的Android框架创建它)。 Application
是一个扩展Context
的类,其他示例包括Activity
和Service
类。
我希望它更清楚一点。