多次使用相同的服务

时间:2013-01-28 18:20:44

标签: android service

我即将完成我的应用程序,并发现了一个“错误”。因为如果用户按下启动服务的按钮,然后按另一个也启动服务的按钮但有其他信息,则该服务将重新启动,第一次启动就会消失。他们不能意味着我应该写出100万个具有相同代码但其他名称的服务类?所以每个按钮都会启动每项服务,我希望至少不会。

那么,在服务中是否有重复使用相同服务并拥有多项服务?我认为这是一个糟糕的解释,但我希望至少有人得到我的意思,并希望帮助我:)。

谢谢!

2 个答案:

答案 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。希望这可以帮助。