我即将完成我的应用程序,并发现了一个“错误”。因为如果用户按下启动服务的按钮,然后按另一个也启动服务的按钮但有其他信息,则该服务将重新启动,第一次启动就会消失。他们不能意味着我应该写出100万个具有相同代码但其他名称的服务类?所以每个按钮都会启动每项服务,我希望至少不会。
那么,在服务中是否有重复使用相同服务并拥有多项服务?我认为这是一个糟糕的解释,但我希望至少有人得到我的意思,并希望帮助我:)。
谢谢!
答案 0 :(得分:1)
解决方案,如聊天中所述:
http://chat.stackoverflow.com/rooms/23522/discussion-between-alex-oliveira-and-guiceu
问题在于您每次都在呼叫startService
。解决方案是将调用更改为bindService
,以便不重新启动服务。
服务将一直运行,直到没有更多的Context绑定到它。如果只绑定一个Activity,则可以在Activity消失时停止服务。如果您需要在应用程序启动时连续运行,请尝试从应用程序上下文中调用。
答案 1 :(得分:0)
不确定您对不同服务的含义,但如果您只是根据按钮点击传递不同的信息,则可以通过附加信息传递信息。在班级你有按钮,你会在每个按钮点击上添加类似的东西。
Intent i = new Intent(FirstActivity.this, SecondActivity.class);
String values = "something";
i.putExtra("EXTRASNAME", values);
然后接收以下类中的值
Bundle extras = getIntent().getExtras();
String values = extras.getString("EXTRASNAME");
如果不同的按钮是诸如(YES或NO)之类的值,则将值“YES”或值“NO”放在相同的extras字符串中,并且当在下一个活动中接收到值时,您可以执行简单的{if }声明让活动根据额外值执行不同的操作。使用附加功能,您还可以执行putBoolean / getBoolean和putInt / getInt。希望这可以帮助。