Java Android-如何将edittext值传递给后台进程,然后在完成后启动新活动
我弹出了一个警告对话框,允许用户输入密码,然后选择提交密码或取消密码(如往常一样,按肯定和否定按钮)。当前,当他们单击登录(pos选项)时,无论他们输入什么,它都会将他们发送到下一页。(代码粘贴在下面) 在更改时,我需要的帮助是,我希望从edittext捕获的密码实际输入到一个活动中,该活动解密位于assets文件夹中的xml文件。捕获的密码是加密的密钥。是否有人可以帮助我修改代码以: a) 捕获密码并将其发送到解密机制(我想这会通过onActivityResult完成吗?) b) 在后台进行解密(我想是用进度条或加载器吧?我真的是Android线程新手) c) 一旦xml被解密,然后转到新的活动,在那里我的代码现在可以读取内存中解密的xml 非常感谢您的帮助 .setPositiveButton(“登录”,新建DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框,int whichButton){Java Android-如何将edittext值传递给后台进程,然后在完成后启动新活动,java,android,mobile,Java,Android,Mobile,我弹出了一个警告对话框,允许用户输入密码,然后选择提交密码或取消密码(如往常一样,按肯定和否定按钮)。当前,当他们单击登录(pos选项)时,无论他们输入什么,它都会将他们发送到下一页。(代码粘贴在下面) 在更改时,我需要的帮助是,我希望从edittext捕获的密码实际输入到一个活动中,该活动解密位于assets文件夹中的xml文件。捕获的密码是加密的密钥。是否有人可以帮助我修改代码以: a) 捕获密码并将其发送到解密机制(我想这会通过onActivityResult完成吗?) b) 在后台进行解
您应该使用服务而不是活动来执行后台任务。您可以将从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 );
}
})