当我关闭主应用服务停止广播意图。哪里出错?我找不到任何办法让它继续运行。
广播接收者:
public class CustomReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Custom Broadcast recevied", Toast.LENGTH_SHORT).show();
}}
服务(AAA.java):
public class AAA extends Service {
final class MyThreadClass implements Runnable {
int service_id;
MyThreadClass(int service_id) {
this.service_id = service_id;
}
@Override
public void run() {
synchronized (this) {
try {
while (true) {
Thread.sleep(3000);
Intent i = new Intent();
i.setAction("cz.johnyapps.custombroadcast");
sendBroadcast(i);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Thread thread = new Thread(new MyThreadClass(startId));
thread.start();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
}}
清单:
<service android:name="cz.johnyapps.notificationservice.AAA"
android:exported="true"
android:process=":ServiceProcess"/>
主要活动:startService(new Intent(this,AAA.class));
答案 0 :(得分:0)
在服务中使用startForeground
方法来防止此类行为
答案 1 :(得分:0)
根据我的知识,一种方法是在关闭应用程序后使服务运行。
你必须在你的应用程序中作为通知进行绑定 为它服务。如果应用程序已关闭,则会附加通知 这将服务绑定到它。
示例:Android手机默认媒体声音播放应用,如果您关闭该应用,通知栏上会显示通知,该通知会维护服务以保持音乐在服务中播放。