我正在尝试使用ORMLite包创建一个Android应用程序.我有一些活动和服务,并使用https://github.com/tomquist/Android-Error-Reporter,以便能够从客户的pdas接收错误.ORMLite要求所有活动和服务都扩展OrmLiteBaseActivity等,或者为每个活动添加适当的代码,以便能够获取数据库帮助程序并在活动完成后释放它.因此,将此代码添加到每个活动或服务都不是很方便.我也有一些可以使用数据库的辅助类
我还有一个包含一些全局信息和方法的应用程序类.所以我决定在应用程序类中打开ormlite helper,并在所有活动/类中使用它,如下所示:
public class MyApplication extends Application {
private volatile DatabaseHelper databaseHelper = null;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onTerminate() {
if (databaseHelper != null) {
OpenHelperManager.releaseHelper();
databaseHelper = null;
}
super.onTerminate();
}
public DatabaseHelper getHelper() {
if (databaseHelper == null) {
databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class);
}
return databaseHelper;
}
}
Run Code Online (Sandbox Code Playgroud)
并以这种方式在其他类中使用它:
((MyApplication) getApplicationContext()).getHelper();
Run Code Online (Sandbox Code Playgroud)
你认为以这种方式使用它是一个好主意还是会有一些内存泄漏或其他问题?我关心的是onTerminate永远不会在真正的设备上工作......我正处于"尝试新东西"的舞台上,所以我想听听有关这方面的任何意见,以消除我将来可能用错误的方法得到的问题,而不是重写代码.
我在android中上传图片时遇到问题.
我正在使用apache httpmime 4.1 lib代码是这样的:
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("image", new FileBody(new File(AndorraApplication.getPhotosPath() + "/" + entity.getFileName()), "image/jpeg"));
resp = NetworkUtils.sendHttpRequestMultipart(EXPORT_PHOTOS_URI, reqEntity);
Run Code Online (Sandbox Code Playgroud)
NetworkUtils类:
public class NetworkUtils {
public static final int REGISTRATION_TIMEOUT = 3 * 1000;
public static final int WAIT_TIMEOUT = 5 * 1000;
public static HttpResponse sendHttpRequestMultipart(String uri, MultipartEntity entity) {
HttpClient mHttpClient = new DefaultHttpClient();
final HttpParams params = mHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, REGISTRATION_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, WAIT_TIMEOUT);
ConnManagerParams.setTimeout(params, WAIT_TIMEOUT);
HttpPost post = new HttpPost(uri);
post.addHeader(entity.getContentType());
post.setEntity(entity);
HttpResponse resp = …Run Code Online (Sandbox Code Playgroud)