Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-如何将edittext值传递给后台进程,然后在完成后启动新活动_Java_Android_Mobile - Fatal编程技术网

Java Android-如何将edittext值传递给后台进程,然后在完成后启动新活动

Java Android-如何将edittext值传递给后台进程,然后在完成后启动新活动,java,android,mobile,Java,Android,Mobile,我弹出了一个警告对话框,允许用户输入密码,然后选择提交密码或取消密码(如往常一样,按肯定和否定按钮)。当前,当他们单击登录(pos选项)时,无论他们输入什么,它都会将他们发送到下一页。(代码粘贴在下面) 在更改时,我需要的帮助是,我希望从edittext捕获的密码实际输入到一个活动中,该活动解密位于assets文件夹中的xml文件。捕获的密码是加密的密钥。是否有人可以帮助我修改代码以: a) 捕获密码并将其发送到解密机制(我想这会通过onActivityResult完成吗?) b) 在后台进行解

我弹出了一个警告对话框,允许用户输入密码,然后选择提交密码或取消密码(如往常一样,按肯定和否定按钮)。当前,当他们单击登录(pos选项)时,无论他们输入什么,它都会将他们发送到下一页。(代码粘贴在下面)

在更改时,我需要的帮助是,我希望从edittext捕获的密码实际输入到一个活动中,该活动解密位于assets文件夹中的xml文件。捕获的密码是加密的密钥。是否有人可以帮助我修改代码以:

a) 捕获密码并将其发送到解密机制(我想这会通过onActivityResult完成吗?) b) 在后台进行解密(我想是用进度条或加载器吧?我真的是Android线程新手) c) 一旦xml被解密,然后转到新的活动,在那里我的代码现在可以读取内存中解密的xml

非常感谢您的帮助

.setPositiveButton(“登录”,新建DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框,int whichButton){


您应该使用服务而不是活动来执行后台任务。您可以将从EditText获得的密码作为启动服务的额外密码传递给该服务

要做到这一点,最简单的方法是在那里扩展并进行解密。使用调用按钮侦听器中的服务。在加密结束时,使用startActivity调用新活动


编辑:我应该澄清我的答案。Rory是正确的-AsyncTask应用于活动中的后台任务。区分后台任务是否应使用AsyncTask或服务的方法应取决于退出活动时是否应执行任务。例如,如果我在e我的活动背景,并且我希望在我离开活动时继续下载,您应该使用服务。另一方面,如果发布活动中显示的当前wifi信号强度是一项后台任务,请使用AsyncTask。

您应该使用服务而不是活动来执行后台任务。您可以将从EditText获得的密码作为启动服务的额外密码传递给服务

要做到这一点,最简单的方法是在那里扩展并进行解密。使用调用按钮侦听器中的服务。在加密结束时,使用startActivity调用新活动


编辑:我应该澄清我的答案。Rory是正确的-AsyncTask应用于活动中的后台任务。区分后台任务是否应使用AsyncTask或服务的方法应取决于退出活动时是否应执行任务。例如,如果我在e我的活动背景,并且我希望在我离开活动时继续下载,您应该使用服务。另一方面,如果发布活动中显示的当前wifi信号强度是一项背景任务,请使用AsyncTask。

这是一项典型的
异步任务作业。

AsyncTask支持正确且简单的使用 这个类允许 执行后台操作和 在UI线程上发布结果 不必操纵线程 和/或处理器

您不需要为此进行其他活动或服务

Asynctask
文档中有一些示例代码,但简而言之,您将继承
Asynctask
并重写
doInBackground
方法来执行后台工作(保证在后台线程中运行)。您可能还希望在此方法中调用
publishProgress
,以指示您已完成后台操作。然后,您将从该方法返回计算结果(在您的示例中是XML缓冲区)

您可能希望覆盖
OnProgressUpdate
并相应地更新
ProgressBar
。此方法将在UI线程中运行,以响应您的
publishProgress
后台方法调用

此外,您还希望覆盖保证在主线程上完成后台操作后运行的
onPostExecuteMethod
。您可以将
doInBackground
的结果作为此方法的参数


请注意,此API适用于级别3(android 1.5)及以上版本。

这是
异步任务的经典作业

AsyncTask支持正确且简单的使用 这个类允许 执行后台操作和 在UI线程上发布结果 不必操纵线程 和/或处理器

您不需要为此进行其他活动或服务

Asynctask
文档中有一些示例代码,但简而言之,您将继承
Asynctask
并重写
doInBackground
方法来执行后台工作(保证在后台线程中运行)。您可能还希望在此方法中调用
publishProgress
,以指示您已完成后台操作。然后,您将从该方法返回计算结果(在您的示例中是XML缓冲区)

您可能希望覆盖
OnProgressUpdate
并相应地更新
ProgressBar
。此方法将在UI线程中运行,以响应您的
publishProgress
后台方法调用

此外,您还希望覆盖保证在主线程上完成后台操作后运行的
onPostExecuteMethod
                        Intent openBrowsePage = new Intent();
                        openBrowsePage .setClassName("com.myproject.android", "com.myproject.android.BrowsePage");
                        startActivity(openBrowsePage );

                    }
                })