从服务关闭活动的正确方法是什么?

时间:2010-11-22 15:08:11

标签: android

可以使用finish()来关闭服务中的活动吗?如果没有,从服务结束活动的正确方法是什么?我已经从我的服务创建了一个活动,需要关闭它。

2 个答案:

答案 0 :(得分:1)

  

可以使用finish()来关闭服务中的活动吗?

不直接。该服务确实真的不应该引用要调用finish()的活动。

  

我已经从我的服务创建了一个活动,需要关闭它。

可能的情况是,您不应该首先从服务开始活动。如果用户觉得你在不必要地打扰他们,他们会用斧头攻击你。

  

如果没有,从服务结束活动的正确方法是什么?

最好让用户关闭活动。那些没有用斧头攻击你的用户通过弹出活动来打断他们会攻击你的俱乐部通过在他们使用活动时摆脱活动来打断他们。

除此之外,使用Messenger或其他内容从服务向活动发送消息,让活动根据需要在Handler中处理,其中可能包括调用finish() }。

答案 1 :(得分:0)

如果可能,我通常更喜欢覆盖活动的覆盖选项:

@Override
public void onDestroy() {
    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onDestroy");
} 

在主要活动中:

@Override
public void onDestroy() {
    super.onDestroy();
    Log.d(logTag,"onDestroy");
}

如何开展活动:

@Override
public void onStart(Intent intent, int startid) {
    Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
    Log.d(TAG, "onStart");
    super.onStart(intent, startid);
}