我有一个正在弹出的警告对话框,它允许一个人输入密码,然后选择提交或取消(像往常一样,正负按钮)。目前,当他们点击登录(pos 选项)时,无论他们输入什么,它都会将他们发送到下一页。 (代码粘贴在下面)。
我需要更改的帮助是,我希望将从编辑文本中捕获的密码实际输入到解密位于 Assets 文件夹中的 xml 文件的 Activity 中。捕获的密码是加密的关键。有人可以就如何将我的代码修改为:
a) 捕获密码并将其发送到解密机制(我想这会用 onActivityResult 完成吗?) b) 在后台进行解密(我猜是用进度条还是加载器?我真的是 Android 线程的新手) c) 一旦 xml 被解密,然后传递到新的 Activity ,我的代码可以在其中读取内存中现在解密的 xml。
非常感谢任何帮助!!
.setPositiveButton("登录", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) {
Intent openBrowsePage = new Intent();
openBrowsePage .setClassName("com.myproject.android", "com.myproject.android.BrowsePage");
startActivity(openBrowsePage );
}
})
最佳答案
这是 AsyncTask
的经典工作。来自 documentation :
AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers.
您不需要为此进行其他 Activity 或服务。
Asynctask
文档有一些示例代码,但简而言之,您将从 AsyncTask
继承并覆盖 doInBackground
方法来执行后台操作(保证在后台线程中运行)。您可能还想从此方法中调用 publishProgress
以指示您的后台操作已取得进展。然后您将从该方法返回计算结果(在您的例子中是一个 XML 缓冲区)。
您可能想要覆盖 OnProgressUpdate
并相应地更新 ProgressBar
。此方法将在 UI 线程中运行以响应您的 publishProgress
后台方法调用。
此外,您还希望覆盖保证在主线程上完成后台操作后运行的 onPostExecuteMethod
。您将获得 doInBackground
的结果作为此方法的参数。
请注意,此 API 适用于级别 3 (android 1.5) 及更高版本。
关于java - Android - 如何将 edittext 值传递给后台进程,然后在完成后启动新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6389046/