利用コードの下にMainActivityのように別のアクティビティからサービスを開始しまし :
Intent serviceIntent = new Intent(context, TaskConfirm.class);
// put some extra data if required
serviceIntent.putExtra("taskId","1");
startService(serviceIntent);
:以下、あなたの活動からのよう
public class TaskConfirm extends IntentService {
private final IBinder mBinder = new LocalBinder();
public TaskConfirm() {
super("TaskConfirm");
setIntentRedelivery(true);
}
@Override
public void onCreate() {
super.onCreate();
//Initilise your objects here like below...
taskIdList=new ArrayList<String>();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
return super.onStartCommand(intent, flags, startId);
}
@Override
protected void onHandleIntent(Intent intent) {
// get intent data here like below if required......
if (intent != null) {
String taskId=intent.getStringExtra("taskId");
}
// apply your loop here .......
for (int i=0;i<5;i++){
Log.e("Inside for","");}
}
public class LocalBinder extends Binder {
public TaskConfirm getService() {
return TaskConfirm.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}
スタートサービス他のアクティビティでこのサービスにアクセスする場合は、そのアクティビティをサービスにバインドします。
protected void onStart() {
super.onStart();
Intent intent = new Intent(this, TaskConfirm.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className,
IBinder service) {
TaskConfirm.LocalBinder binder = (TaskConfirm.LocalBinder) service;
mService = binder.getService();
mBound = true;
// do your task on service-connected...
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
mBound = false;
}
};
*ループを開始する前にサービスが終了しました*どうやってこれを知っていますか?どのようにサービスを開始しましたか?どこから? – Selvin
サービスを開始する方法を示します –
意図インテント=新しいインテント(this、ReminderService.class); startService(インテント); @ VladMatvienko – Maani