我想在android应用程序中做后台服务,即使当应用程序处于关闭、杀死或后台状态时,它也应该始终保持运行,我目前有后台服务,当应用程序最小化时,它工作得很好,但当我关闭应用程序时,杀死应用程序时,它不工作。如果应用程序死亡,套接字是关闭的,即使我使用了android隔离进程true...
我想让套接字在任何情况下都可用
public class MyTestService extends IntentService {
private ServerSocket serverSocket;
private Socket tempClientSocket;
Thread serverThread = null;
public static final int SERVER_PORT = 3001;
public MyTestService() {
// Used to name the worker thread, important only for debugging.
super("test-service");
}
@Override
public void onCreate() {
super.onCreate(); // if you override onCreate(), make sure to call super().
// If a Context object is needed, call getApplicationContext() here.
}
@Override
protected void onHandleIntent(Intent intent) {
Socket socket;
try {
serverSocket = new ServerSocket(SERVER_PORT);
} catch (IOException e) {
e.printStackTrace();
}
if (null != serverSocket) {
while (true) {
try {
socket = serverSocket.accept();
try {
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String mess = input.readLine();
BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
PrintWriter out = new PrintWriter(bf,true);
out.println("message recieve");
input.close();
bf.close();
serverSocket.close();
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, "asdsadasd")
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("Title")
.setContentText(mess)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(1, mBuilder.build());
} catch (IOException e) {
e.printStackTrace();
}
}
catch (Exception e){
}
}
}
}
}
具体取决于您想要做什么,我将查看WorkManager。
fun workRequest() {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresCharging(true)
.setRequiresDeviceIdle(true)
.build()
val worker: WorkRequest =
PeriodicWorkRequestBuilder<DetailsWorker>(6, TimeUnit.HOURS)
.setInputData(workRequestData)
.setConstraints(constraints)
.build()
WorkManager.getInstance().enqueue(worker)
}
Updtaed MainActivity.cs 提前谢了。
问题内容: 我正在尝试在后台运行服务。我的应用程序要做的是,当用户选中复选框,然后服务启动,而未选中时,服务停止。哪个工作正常。但是问题是,当我从任务管理器中关闭应用程序时,它也停止了服务。我想要的是即使从任务管理器关闭后也要保持服务运行。然后,停止该服务的唯一方法是由用户自己打开框。 我该如何实现? 这是我的代码 我的主要活动 我的服务等级 更新资料 我们如何使该服务像gtalk服务一样运行?
我正在尝试生成一个始终保持活动状态的服务,即使用户关闭了应用程序。根据这些线索 在应用关闭时保持位置服务的活动状态 当应用程序关闭时,Android服务停止 Android:保持服务运行时,应用程序被杀死 这可以通过IntentService或Service来实现。开始吧 然而,我尝试了这两种服务,但都没有成功。换句话说,当用户关闭应用程序时,我的服务就会失效。有人能指出这是否是可以做到的,以及如
我一直在使用Phonegap开发一个Android应用程序,现在我想让它在应用程序关闭时仍然可以在应用程序中执行java/js代码。所以我知道我需要创建一个服务。如果我在phonegap上创建服务插件,我还能执行javascript代码还是只执行java? 有人做过这样的事情吗?我发现了这个讨论,但似乎没有用:http://groups.google.com/group/phonegap/brow
我想保持一个服务在后台运行,即使当我的应用程序被杀死。我使用的是事件,但服务只在屏幕解锁时运行。我尝试了,但下载应用程序后至少需要重新启动手机一次。 理想情况下,我将使用启动服务所有X分钟。然后检查条件(电池电量、网络连接……)在开始服务之前。 问题是这样的事件不能从声明和监听,而是在活动中,这意味着应用程序是“活动的”。 有办法做我想做的事吗?