我有一项启动后台服务的活动。一旦启动,它就会永远运行。
让我们说后台服务需要启动它来更新某些内容的活动。然后我怎么能再次启动活动“如果它没有启动”但是如果它已经启动然后发送广播?
由于
答案 0 :(得分:0)
对于活动,您指的是服务的流程。如果服务永远启动,那么它的进程就会启动它(除非系统为了恢复内存目的而终止它并在以后重新创建它)。这并不意味着其他活动/片段/服务不会被杀死。服务只是应用程序的入口点,它使您的流程在流程优先级阶梯中占据一席之地。
答案 1 :(得分:0)
很难说,因为我不知道你的应用程序的细节,但我认为你可能想要考虑一些重新设计。
正如您所注意到的,活动是短暂的。一般来说,服务不应该(不能)依赖于活动的特定活动。
事实上,精心设计的服务根本不应取决于任何特定的活动。
答案 2 :(得分:0)
答案 3 :(得分:0)
我不确定我是否完全听从了你的问题。但是,当从服务通信到活动时,我在Activity类中使用广播接收器。
可以按如下方式创建:
//在您的活动类
中注册BroadcastReceiverthis.receiver = new NotificationReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.LISTENER");
registerReceiver(receiver, filter);
//插入您的活动类
class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.hasExtra("command")) {
if(intent.getStringExtra("command").equals("userRegistered")) {
// insert code to do something when this intent is received
}
}
}
}
//在您的服务类中插入以发送消息
Intent i = new Intent("com.example.LISTENER");
i.putExtra("command", "userRegistered");
sendBroadcast(i);