Android:如何在后台启动Activity

时间:2013-04-17 10:09:04

标签: android android-activity

通常我会使用以下代码开始一项活动:

Intent i = new Intent(context, MyActivity.class);  
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);  

但是如何开始活动以便留在后台呢?

4 个答案:

答案 0 :(得分:8)

您应该使用Services - 此外还有Class Description

答案 1 :(得分:7)

要使活动在后台运行,可以使用服务。创建一个后台服务,如:

import android.app.Service;
import android.content.Intent;
import android.os.Binder;

import android.os.IBinder;

public class BackgroundService extends Service {


    private final IBinder mBinder = new LocalBinder();

    public class LocalBinder extends Binder {
        BackgroundService getService() {
            return BackgroundService.this;
        }
    }


    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }
}

在主活动的oncreate()中调用服务,如下所示 -

 startService(new Intent( MainActivity.this,BackgroundService.class));

答案 2 :(得分:2)

你可以做三件事

如果您想在后台执行具有UI更新的长时间运行任务。使用Asyntask。 如果你想在后台执行长时间运行的任务,只使用intentservice。 如果你想要一些不太重的背景任务,可以使用服务。

答案 3 :(得分:0)

活动通常意味着向用户显示。如果您不需要任何UI,则可能根本不需要子类化Activity。考虑使用ie Service或IntentService来完成任务。或者,您可以将活动主题设置为.NoDisplay