gpt4 book ai didi

android - 如何在 ActivityResult 上启动 AsyncTask 并在 MainActivity 上显示

转载 作者:太空狗 更新时间:2023-10-29 14:21:27 25 4
gpt4 key购买 nike

我打开一个捕获图像的 Intent ,我调用 AsyncTask 的 OnActivityResult 开始对图像进行一些处理。问题是我想先加载 mainActivity,然后启动 AsyncTask 以查看 AsyncTask 的百分比。我该怎么做?

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
try {
rotationIfNeeded();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.v(TAG, "C");

retrievePreferences();
OcrAsyncTask aTask = new OcrAsyncTask(dialog, languageCode, languagePath, bitmap);
aTask.execute(languagePath);

while (aTask.doInBackground(languagePath)){
//Do Nothing
}

recognizedText = aTask.getRecognizedText();
Log.v(TAG, "The Recognized Text is = " + aTask.getRecognizedText());
if ( recognizedText.length() != 0 ) {
ocrResult.setText(ocrResult.getText().toString().length() == 0 ? recognizedText : ocrResult.getText() + " " + recognizedText);
ocrResult.setSelection(ocrResult.getText().toString().length());
}

} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT);
} else {
Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT);
}
}
}

最佳答案

在你的 MainActivity 中有这个

private class MyAsyn extends AsyncTask<Boolean, Void, Object> {
private ProgressDialog pd;

/** application context. */
public MyAsyn(Activity activity) {
pd = new ProgressDialog(activity);
}

protected void onPreExecute() {
pd.setMessage("Loading.. Please wait");
pd.show();
}

@Override
protected String doInBackground(Boolean... urls) {

pd.show();

// do what you want to do in back ground

return null;
}

@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
// code to notify the progress
}

@Override
protected void onPostExecute(Object result) {
pd.dismiss();
}
}

在你的 OnActivityResult 方法中添加这个

MyAsyn task = new MyAsyn(MainActivity.this);
task.execute(true);

等 Activity 结果返回您的处理在后台开始

关于android - 如何在 ActivityResult 上启动 AsyncTask 并在 MainActivity 上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16606913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com