【发布时间】:2015-03-12 19:44:06
【问题描述】:
我正在制作一个安卓应用程序。 我通过在主 Activity 的 onCreate 方法中调用 startService 方法在启动活动中启动服务
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getActionBar().hide();
setContentView(R.layout.activity_main);
starService();
}
private void starService() {
startService(new Intent(getBaseContext(), HelenaService.class));
}
当我敬酒以查看在我的服务中如何调用这些方法时。我看到这个方法被调用了两次..
@Override
public void onStart(Intent intent, int startId) {
Toast.makeText(this, "service started", Toast.LENGTH_SHORT).show();
}
我的意思是,我可以看到第一个 toast 立即被调用,几秒钟后出现完全相同的 toast 消息。
如何确保 onStart 方法只被调用一次。尝试了一个标志,但变量被重新启动。
有什么帮助吗?或建议?
【问题讨论】:
-
你能发布更多的服务吗?另外,你在哪里调用 startService()?
-
我在启动器活动的 onCreate 方法中调用 starService()。该服务在方法中只有 toast msg:onStartCommand 和 OnStart
-
检查我的答案,看看它是否准确。
-
你的意思是我看到两次 Toast 消息,因为我在两种方法中都放了两个 Toast 消息?我做到了,但是每个 toast 都有一个不同的消息,“toast in start”和“toast in startCommand”,我在几秒钟内看到这两次..
-
啊,看到这些是最初需要提供的细节。你做了Log.e吗?会发生什么?