通常我用这段代码开始一个活动:
Intent i = new Intent(context, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
但是我如何启动活动以便将其留在后台?
通常我用这段代码开始一个活动:
Intent i = new Intent(context, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
但是我如何启动活动以便将其留在后台?
要保持活动在后台运行,可以使用服务。创建一个后台服务,如:
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;
}
}
像这样在 Main 活动的 oncreate() 中调用服务 -
startService(new Intent( MainActivity.this,BackgroundService.class));
你可以做三件事
如果您想通过 UI 更新在后台执行长时间运行的任务。使用异步任务。如果您想在后台执行长时间运行的任务,请仅使用 intentservice。如果您想要一些不太繁重的后台任务,请使用服务。
活动通常意味着向用户显示。如果您不需要任何 UI,您可能根本不需要子类化 Activity。考虑为您的任务使用 ie Service 或 IntentService。或者您可以将 Activity 的主题设置为.NoDisplay
.