我正在创建一个包含五项活动的应用。我有一个类,其中包含在所有五个活动中使用的函数和变量。我在每个活动中创建了一个局部变量,像这样初始化类;
localclass = new globalclass(getResouces());
我是android / java开发的新手,并且想知道memoryfootprints等等,当我尝试了一些东西时。在第一个开始的活动中,localclass被设置为如上所述。然后,我尝试从其他活动中访问此变量,并在活动第二,第三等中成功完成此操作;
localclass = com.firstactivity.localclass;
我使用的变量之一是对应用程序资源的引用。在第二次的活动中我不会得到这样的资源;
res = getResources();
但是喜欢这个;
res = com.firstactivity.localclass.res;
只要变量是静态的,这就可以工作。我也以相同的方式访问globalclass中的函数。
这是不好的实践吗?
答案 0 :(得分:5)
通常使用静态类作为变量持有者确实不是一个好习惯。尝试通过意图在其他活动中传递您需要的变量。请参阅this,因为它解释了为什么这不是一个好方法。
答案 1 :(得分:3)
看看Application class。您创建了一个扩展Application:
的类public class YourApplication extends Application {
// functions, variables, whatever it is you need across your whole program
}
您可以通过在您的活动/服务中调用此应用程序来获取对您的应用程序的引用:
YourApplication app = (YourApplication)getApplication();
另外,请记住在清单文件中声明应用程序。
<application android:name="the.package.name.YourApplication" />