Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何终止来自不同类的活动?_Android_Android Intent - Fatal编程技术网

Android 如何终止来自不同类的活动?

Android 如何终止来自不同类的活动?,android,android-intent,Android,Android Intent,由于对安卓系统比较陌生,我想我没有恰当地回答我的问题。这就是我要做的。通常,当您启动一个新的意图时,您可以使用class.this.finish()完成旧的活动。但是我想完成一门不同的课,而不是现在的课。假设我有一个带有按钮的活动。单击按钮将使我进入第二个活动。现在,单击另一个按钮将进入第三个活动,同时完成第一个活动。这里的关键字可能是finish,而不是kill。您可以在第一个活动中注册一个广播接收器,然后从第三个活动发送广播。然后在接收方的onReceive()方法finish()中执行活动

由于对安卓系统比较陌生,我想我没有恰当地回答我的问题。这就是我要做的。通常,当您启动一个新的意图时,您可以使用class.this.finish()完成旧的活动。但是我想完成一门不同的课,而不是现在的课。假设我有一个带有按钮的活动。单击按钮将使我进入第二个活动。现在,单击另一个按钮将进入第三个活动,同时完成第一个活动。这里的关键字可能是finish,而不是kill。

您可以在第一个活动中注册一个
广播接收器
,然后从第三个活动发送广播。然后在接收方的
onReceive()
方法
finish()
中执行活动


但是,重新考虑设计可能是更好的解决方案。

您可以在第一个活动中注册一个
广播接收器,然后从第三个活动发送广播。然后在接收方的
onReceive()
方法
finish()
中执行活动


但是,重新考虑设计可能是更好的解决方案。

这是一个没有直接答案的问题。杀戮活动对于Android来说不是一个好的设计模式,所以我的第一个想法是“不要这样做”。当然,这不是很有帮助

如果你描述一下你想做什么,我们也许能帮上忙。我们可以建议一种不需要终止某项活动的替代方案,或者允许一项活动以更“认可”的方式完成另一项活动


有时一个问题的答案是提出一个不同的问题。就像机器人撞墙一样,问题不在于穿墙,而在于学习如何转身继续前进。

这是一个没有直接答案的问题。杀戮活动对于Android来说不是一个好的设计模式,所以我的第一个想法是“不要这样做”。当然,这不是很有帮助

如果你描述一下你想做什么,我们也许能帮上忙。我们可以建议一种不需要终止某项活动的替代方案,或者允许一项活动以更“认可”的方式完成另一项活动


有时一个问题的答案是提出一个不同的问题。就像机器人撞墙一样,问题不在于切割墙壁,而在于学习如何打开并继续。

原始解决方案:带有适当检查的静态变量…哈哈哈带有活动参考的静态变量是一个愚蠢的问题idea@Selvin:这是一种解决方法,如果使用不当,会很危险。这是一个丑陋的解决方案,我同意,但总比没有好(你没有写过一个)…从Activity3开始Activity1,使用带有布尔额外值的特殊标志。。。然后在oncreate of Activity1中,当意图包含此额外内容时调用finish。。。我不记得应该是哪个标志,但这里有很多类似的问题,所以…我指的是Activity.FLAG_xxxxx原始解决方案:带有适当检查的静态变量…哈哈哈,带有活动引用的静态变量是一个愚蠢的问题idea@Selvin:这是一种解决方法,如果使用不当,会很危险。这是一个丑陋的解决方案,我同意,但总比没有好(你没有写过一个)…从Activity3开始Activity1,使用带有布尔额外值的特殊标志。。。然后在oncreate of Activity1中,当意图包含此额外内容时调用finish。。。我不记得应该是什么旗帜,但这里有很多类似的问题,所以…我说的旗帜是指活动。旗帜是个坏主意。。。您应该在顶部活动中注销接收器。。。因此,如果Activity1不是最顶级的,它就不应该有任何接收器registered@Selvin我同意,这就是为什么我建议重新思考设计将是一个更好的解决方案。坏主意。。。您应该在顶部活动中注销接收器。。。因此,如果Activity1不是最顶级的,它就不应该有任何接收器registered@Selvin我同意,这就是为什么我建议重新思考设计将是一个更好的解决方案。由于Android相对较新,我想我没有正确地回答我的问题。这就是我要做的。通常,当您启动一个新的意图时,您可以使用
class.this.finish()
完成旧的活动。但是我想完成一门不同的课,而不是现在的课。假设我有一个带有按钮的活动。单击按钮将使我进入第二个活动。现在,单击另一个按钮将进入第三个活动,同时完成第一个活动。可能这里的关键字是
finish
,而不是
kill
一般来说,当你开始一个新的意图时,你可以通过使用class来完成旧的活动。this.finish()…
我非常怀疑这在Android中是否是一种常见的做法。活动生命周期最好留给安卓来管理。由于安卓相对较新,我想我没有恰当地回答我的问题。这就是我要做的。通常,当您启动一个新的意图时,您可以使用
class.this.finish()
完成旧的活动。但是我想完成一门不同的课,而不是现在的课。假设我有一个带有按钮的活动。单击按钮将使我进入第二个活动。现在,单击另一个按钮将进入第三个活动,同时完成第一个活动。可能这里的关键字是
finish
,而不是
kill
一般来说,当你开始一个新的意图时,你可以通过使用class来完成旧的活动。this.finish()…
我非常怀疑这在Android中是否是一种常见的做法。活动生命周期最好留给Android来管理。