0

当我关闭主应用程序服务停止广播意图。错在哪里?我找不到任何方法让它继续运行。

广播接收器:

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));

4

2 回答 2

0

据我所知,一种方法是即使在关闭应用程序后也让服务运行。

您必须在您的应用程序中发出通知,将服务绑定到它。如果应用程序关闭,则将附加通知,该通知将服务绑定到它。

示例:Android 手机默认的媒体声音播放应用程序,如果您关闭该应用程序,通知栏上会显示一条通知,通知栏维护服务以保持服务中的音乐播放。

于 2017-03-25T20:11:15.123 回答
0

使用startForeground服务内部的方法来防止此类行为

于 2017-03-25T20:00:22.873 回答