什么是从服务关闭活动的正确方法?
答
可以使用finish()来关闭一个活动服务?
不直接。该服务确实真的不应该提及finish()
的活动。
我从我的服务中创建了一个活动,需要关闭它。
赔率是,你不应该首先从服务开始的活动。如果用户觉得你不必要地干扰他们,用户将用斧头攻击你。
如果不是,从服务中结束活动的正确方法是什么?
优选地,让用户关闭活动。那些不用斧头攻击你的用户通过弹出活动来打断他们会攻击你的俱乐部,通过在他们使用活动的同时摆脱它们来中断他们。
除此之外,使用Messenger
或东西从服务发送消息到活动中,并让活性处理,作为希望以Handler
,其中可能包括呼叫finish()
。
答
如果可能的话我通常喜欢关闭活动覆盖选项:
@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);
}
+0
谢谢。我如何从服务中调用这个?我以服务意图启动了该活动。 – Ryan 2010-11-22 15:28:48
这是严格要求吗?操作系统需要根据需要收集垃圾活动。 – 2010-11-22 15:14:11