我想为我的应用程序实现此情况。我想安排我的服务以在电话启动时开始,并且每当其他应用程序致电我的服务时,我都希望我的服务在项目中启动某个活动。
因此,要清楚。我想创建一个项目,该项目包含一项服务,该服务每当电话启动时运行,并且处于休眠状态,请收听第三方应用程序的电话。每当收到该电话时,此服务都会调用一项活动(来自同一项目,而不是第三方)
如何配置清单文件以实现这一目标?
我也遇到了这个建议,但是我的情况大不相同。
非常感谢您
**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>
这使您可以运行活动,然后可以从该活动开始前景服务。我只是设置此示例,因为我已经准备好了,您可以根据自己的方式调整它以运行服务。