通常我会使用以下代码开始一项活动:
Intent i = new Intent(context, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
但是如何开始活动以便留在后台呢?
答案 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
。