Android - 如何在后台

时间:2017-09-01 05:46:01

标签: android android-intent android-activity

我想在第一个活动中运行并在后台加载我的第二个活动。第二项活动很繁重,加载需要时间。我需要在加载后显示我的第二个活动。

这是我的代码

public void onEmbellishClick(View view){

    Intent intent = new Intent(this,EmbellishActivity.class);
    intent.putExtra("user_text",userText.getText().toString() + " ");

    startActivity(intent);
}

我可以在背景上加载它,然后用代码显示它吗?

3 个答案:

答案 0 :(得分:1)

如果您在第二个活动中执行繁重的任务,而不是将繁重的任务移到后台服务或线程中。

您可以使用AsyncTask进行后台工作

  

AsyncTask 可以正确,轻松地使用UI线程。此类允许您执行后台操作并在UI线程上发布结果,而无需操作线程和/或处理程序。

     

Android AsyncTask是Android提供的一个抽象类,它让我们可以在后台执行繁重的任务,并保持UI线程轻松,从而使应用程序更具响应性。

AsyncTask的示例

link 1

link 2

link 3

答案 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);