我想创建一个始终在后台运行的服务。我做了几次尝试,但是当我从最近的应用程序向上滑动应用程序时,我的服务总是停止。我通过在单独的过程中运行服务来尝试可用的解决方案
我也尝试从服务的onStartCommand返回START_STICKY,但这也没有用。请参阅示例图像,了解始终在后台运行的服务。即使whatsApp不在我最近的应用程序中,但服务未关闭。
请帮帮我。我很长时间都在苦苦挣扎。
这是我的代码
public class service extends Service
{
private static final String TAG = "MyService";
public static String MAIN_ACTION = "main";
public static String PREV_ACTION = "prev";
public static String PLAY_ACTION = "play";
public static String NEXT_ACTION = "next";
public static int FOREGROUND_SERVICE = 101;
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void onDestroy() {
Log.d(TAG, "onDestroy");
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
}
public void onCreate() {
Log.d(TAG, "Service created");
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStart");
Log.d(TAG, "Service started");
processIntent(intent);
Thread readerThread = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
Log.d(TAG, "Thread present");
try {
// thread to sleep for 1000 milliseconds
Thread.sleep(3000);
} catch (Exception e) {
System.out.println(e);
}
}
}
});
readerThread.start();
}
}
我正在通过我的活动来调用它
Intent i = new Intent(this, service.class);
startService(i);
当应用程序运行时服务启动,我看到服务在运行应用程序中运行1个进程和1个服务但是当我刷出应用程序时,进程和服务都被杀死
谢谢