Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启动服务的小部件也会启动主活动_Android - Fatal编程技术网

Android 启动服务的小部件也会启动主活动

Android 启动服务的小部件也会启动主活动,android,Android,我有一个小部件,用来启动和停止一个服务(当它不运行时启动它,当它运行时停止它)。这很好,但是,每次启动服务时,我的应用程序的主要活动也会启动,这是我不想要的。 如果我移除主意图过滤器( )从应用程序的清单中,它可以按我所希望的方式工作(不启动主活动,只启动服务),但很明显,我已经没有主活动了 这就是我启动服务的方式(我假设这是正常的方式,我看不到任何可能导致主意图触发的参考): 谢谢, 尼克我现在通过添加一个finish()来“解决”它到我的主要活动的onPause()。这不是一个很好的解决方

我有一个小部件,用来启动和停止一个服务(当它不运行时启动它,当它运行时停止它)。这很好,但是,每次启动服务时,我的应用程序的主要活动也会启动,这是我不想要的。 如果我移除主意图过滤器(

)从应用程序的清单中,它可以按我所希望的方式工作(不启动主活动,只启动服务),但很明显,我已经没有主活动了

这就是我启动服务的方式(我假设这是正常的方式,我看不到任何可能导致主意图触发的参考):

谢谢,

尼克

我现在通过添加一个
finish()来“解决”它到我的主要活动的
onPause()
。这不是一个很好的解决方案,但主活动并不繁重,因此重新加载(而不是从内存中取回)不会造成太大的伤害。还是很奇怪,我想知道我做错了什么:)

您的解决方案不是一个好的解决方案,例如,当用户改变方向(旋转手机)时,会出现onPause(),因此当这种情况发生时,您的应用程序将消失


我询问并找到了解决方案:

在活动启动服务后向其添加
finish()

只有在主活动之前已启动且仍在内存中时才会发生这种情况。当我在重启后(或者在我用taskmanager关闭了我的应用程序后)单击小部件时,只有服务启动,而不是活动。
Intent svc = new Intent(this, OnOffService.class);
startService(svc);