我只想做的主要事情是,当我的应用程序关闭时,我必须检查我的webservice,当它在webservice上获得任何警报,然后它显示通知或活动。 我阅读了有关服务并做了一个例子但是当我从最近的应用程序中删除应用程序时,有时候服务重新启动或某些服务被杀死了。
代码:
package com.usamaakmal.startedservice;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.SystemClock;
import android.widget.Toast;
public class NewService extends Service {
public NewService() {
}
int i = 0;
Handler handler = new Handler();
Thread runnable = new Thread() {
@Override
public void run() {
i++;
Toast.makeText(getBaseContext(), "Hello World! " + i, Toast.LENGTH_SHORT).show();
handler.postDelayed(this,1000);
}
};
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
handler.postDelayed(runnable,2000);
}
@Override
public void onDestroy() {
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
}
答案 0 :(得分:0)
从最近的应用列表中删除应用已杀死应用进程。从START_STICKY
返回onStartCommand()
意味着您希望系统在服务被杀死后重新启动服务(因为您从最近的列表中移除了应用程序或因为资源耗尽而导致系统终止服务)。
如果您希望保持服务(及其流程),您将需要前台服务。 系统尝试尽可能长时间地保持前台服务的活动。 请参阅:Running service in foreground