为Android应用程序创建守护程序的服务



我想为我的应用程序实现此情况。我想安排我的服务以在电话启动时开始,并且每当其他应用程序致电我的服务时,我都希望我的服务在项目中启动某个活动。

因此,要清楚。我想创建一个项目,该项目包含一项服务,该服务每当电话启动时运行,并且处于休眠状态,请收听第三方应用程序的电话。每当收到该电话时,此服务都会调用一项活动(来自同一项目,而不是第三方)

如何配置清单文件以实现这一目标?

我也遇到了这个建议,但是我的情况大不相同。

非常感谢您

  **Define Service in manifest and  Create the BroadcastReciever with boot complete permission and listen the intent.If boot completed start the service.**
public class MyService extends Service {
            Context context = this;
            @Nullable
            @Override
            public IBinder onBind(Intent intent) {
                return null;
            }
            @Override
            public int onStartCommand(Intent intent, int flags, int startId) {
                try {
                    Intent activity = new Intent(context, MyActivity.class);
                    activity.putExtra("Message", "fromService");
                    activity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    activity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    context.startActivity(activity );
                } catch (Exception e) {
                    MyLog.printException(e);
                }
                 return super.onStartCommand(intent, flags, startId);
            }

        }

通过创建一个广播员,您可以执行服务启动。

public class StartupReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            Intent i = new Intent(context, ShowActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}

和清单中

<receiver
    android:name=".StartupReceiver"
    android:enabled="true"
    android:exported="true"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</receiver>

这使您可以运行活动,然后可以从该活动开始前景服务。我只是设置此示例,因为我已经准备好了,您可以根据自己的方式调整它以运行服务。

最新更新