我想在第一个活动中运行并在后台加载我的第二个活动。第二项活动很繁重,加载需要时间。我需要在加载后显示我的第二个活动。
这是我的代码
public void onEmbellishClick(View view){
Intent intent = new Intent(this,EmbellishActivity.class);
intent.putExtra("user_text",userText.getText().toString() + " ");
startActivity(intent);
}
我可以在背景上加载它,然后用代码显示它吗?
答案 0 :(得分:1)
如果您在第二个活动中执行繁重的任务,而不是将繁重的任务移到后台服务或线程中。
您可以使用AsyncTask进行后台工作
AsyncTask 可以正确,轻松地使用UI线程。此类允许您执行后台操作并在UI线程上发布结果,而无需操作线程和/或处理程序。
Android AsyncTask是Android提供的一个抽象类,它让我们可以在后台执行繁重的任务,并保持UI线程轻松,从而使应用程序更具响应性。
AsyncTask的示例
答案 1 :(得分:1)
您无法从后台启动活动,因为它打算从Android主线程运行。而不是从后台加载活动,您可以执行繁重的工作,这些与后台线程中的UI无关,您可以使用 AsyncTask ,处理程序甚至 IntentService ,然后在主线程上获取结果并更新您的UI。尽量避免嵌套布局,不要在主线程中处理任何繁重的任务。
答案 2 :(得分:0)
为此您要使用服务
<强>步骤1 强> 创建扩展Service的类文件,如下所示
public class TestService extends Service {
@Override
public void onCreate() {
// cancel if already existed
}
}
<强>步骤-2 强> 将您的服务类放在AndroidManifest.xml
中<service android:name=".TestService" />
<强>步骤-3 强> 像这样使用Intent进行呼叫服务
Intent intent = new Intent(this,TestService.class);
startActivity(intent);