如何在另一个类中移动@Override方法



我有几个方法在我的活动,并希望将它们移动到不同的类,因为我将再次使用它以后。这允许我上传图像到我的服务器,它在我的活动中工作得很好,但我想移动它。

问题,我是java的初学者,我不知道如何,有人能告诉我如何做到这一点吗?

谢谢你的帮助!

下面,我想移动

的代码
@Override
protected void onResume() {
super.onResume();
uploadReceiver.register(this);
}
@Override
protected void onPause() {
super.onPause();
uploadReceiver.unregister(this);
}
private void pickFile() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select image"), PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
uploadMultipart(data.getData().toString());
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
pictureProfileInformation.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
private String getPath(Uri uri){
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":")+1);
cursor.close();
cursor=getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Images.Media._ID+" = ? ", new String[]{document_id}, null);
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
cursor.close();
return path;
}
private void uploadMultipart(String filePath) {
try {
String uploadId = UUID.randomUUID().toString();
uploadReceiver.setUploadID(uploadId);
String name = tilUsernameInformation.getEditText().getText().toString().trim();
String path = getPath(Uri.parse(filePath));
String extension = path.substring(path.indexOf("."));
String sessionPhoto = (name+extension).toLowerCase();
String id_user =sessionManager.getUserData().get(sessionManager.ID_USER);
new MultipartUploadRequest(this, uploadId, URL_UPLOAD)
.setMethod("POST")
.addFileToUpload(filePath, "image")
.addParameter("name", name)
.addParameter("id_user", id_user)
.setNotificationConfig(new UploadNotificationConfig())
.setMaxRetries(0)
.startUpload();
sessionManager.changeData("PHOTO", sessionPhoto);
} catch (Exception exc) {
Log.e("Upload start error", exc.getMessage(), exc);
}
}
@Override
public void onProgress(Context context, UploadInfo uploadInfo) {
showMessage("Progress: " +  uploadInfo.getProgressPercent());
}
@Override
public void onError(Context context, UploadInfo uploadInfo, ServerResponse serverResponse, Exception exception) {
showMessage("Error uploading. Server response code: " +  serverResponse.getHttpCode() + ", body: " + serverResponse.getBodyAsString());
}
@Override
public void onCompleted(Context context, UploadInfo uploadInfo, ServerResponse serverResponse) {
showMessage("Completed. Server response code: " +  serverResponse.getHttpCode() + ", body: " + serverResponse.getBodyAsString());
}
@Override
public void onCancelled(Context context, UploadInfo uploadInfo) {
showMessage("Upload cancelled");
}
private void showMessage(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
Log.i("Message", message);
}

您可以使用一个简单的层次结构来管理它

在父类(也可能是抽象类)中,你可以定义这些你想在你的活动中重用的通用方法

public abstract class ParentActivity {
[some code]
@Override
protected void onResume() {
super.onResume();
uploadReceiver.register(this);
}
@Override
protected void onPause() {
super.onPause();
uploadReceiver.unregister(this);
}
[other Override methods]
}

,然后你的活动可以扩展它

public class MyActivity extends ParentActivity {
[code]
}

最新更新