Android 启动服务的小部件也会启动主活动
我有一个小部件,用来启动和停止一个服务(当它不运行时启动它,当它运行时停止它)。这很好,但是,每次启动服务时,我的应用程序的主要活动也会启动,这是我不想要的。 如果我移除主意图过滤器(Android 启动服务的小部件也会启动主活动,android,Android,我有一个小部件,用来启动和停止一个服务(当它不运行时启动它,当它运行时停止它)。这很好,但是,每次启动服务时,我的应用程序的主要活动也会启动,这是我不想要的。 如果我移除主意图过滤器( )从应用程序的清单中,它可以按我所希望的方式工作(不启动主活动,只启动服务),但很明显,我已经没有主活动了 这就是我启动服务的方式(我假设这是正常的方式,我看不到任何可能导致主意图触发的参考): 谢谢, 尼克我现在通过添加一个finish()来“解决”它到我的主要活动的onPause()。这不是一个很好的解决方
)从应用程序的清单中,它可以按我所希望的方式工作(不启动主活动,只启动服务),但很明显,我已经没有主活动了
这就是我启动服务的方式(我假设这是正常的方式,我看不到任何可能导致主意图触发的参考):
谢谢,尼克我现在通过添加一个
finish()来“解决”它代码>到我的主要活动的onPause()
。这不是一个很好的解决方案,但主活动并不繁重,因此重新加载(而不是从内存中取回)不会造成太大的伤害。还是很奇怪,我想知道我做错了什么:) 您的解决方案不是一个好的解决方案,例如,当用户改变方向(旋转手机)时,会出现onPause(),因此当这种情况发生时,您的应用程序将消失
我询问并找到了解决方案:在活动启动服务后向其添加finish()
。只有在主活动之前已启动且仍在内存中时才会发生这种情况。当我在重启后(或者在我用taskmanager关闭了我的应用程序后)单击小部件时,只有服务启动,而不是活动。
Intent svc = new Intent(this, OnOffService.class);
startService(svc);