【发布时间】:2015-09-09 03:08:22
【问题描述】:
在我的 android 应用中,有一些常见任务,例如获取服务器的 IP 以进行 API 调用 - 为此我创建了一个单例类
public class MiscFunctions extends Activity {
private static MiscFunctions ourInstance = new MiscFunctions();
public static MiscFunctions getInstance() {
return ourInstance;
}
private MiscFunctions() {
}
/*
method to return the ip of main server.
The ip is written in plain text in file server_url.txt in assets folder
*/
public String getServerIP(Context c) {
try {
AssetManager am = c.getAssets();
InputStream is = am.open("server_url.txt");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
return new String(buffer);
}
catch (IOException e) {
System.out.println("IO Error while accesssing server_url.txt");
e.printStackTrace();
return "Failed to open server_url.txt";
}
catch (NullPointerException e) {
System.out.println("NullPointer exception error while accessrng server_url.txt");
e.printStackTrace();
return "Failed to open server_url.txt";
}
catch (Exception e) {
System.out.println("Unknown exception error while accessrng server_url.txt");
e.printStackTrace();
return "Failed to open server_url.txt";
}
}
}
然后我将在各种活动中使用这个类:
Context c = this.getApplicationContext();
server_ip = MiscFunctions.getInstance().getServerIP(c);
我只是想知道这是否是正确的方法?或者我应该使用常规的 java 类并实例化该类以调用活动中的方法。
哪种方法更高效、更稳健?
任何专业的 cmets 都将受到高度赞赏。提前致谢
【问题讨论】:
-
没有必要扩展活动类,让你的方法静态就是这样。