主应用程序关闭时服务停止

时间:2017-03-25 19:53:44

标签: android service android-studio-2.3

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

广播接收者:

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

2 个答案:

答案 0 :(得分:0)

在服务中使用startForeground方法来防止此类行为

答案 1 :(得分:0)

根据我的知识,一种方法是在关闭应用程序后使服务运行。

  

你必须在你的应用程序中作为通知进行绑定   为它服务。如果应用程序已关闭,则会附加通知   这将服务绑定到它。

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