我不确定这是否可能,但我所追求的是,我有一个方法,我在我的onCreate中调用,该方法在应用程序启动时运行,基本上这个方法做了一堆像put这样的东西Textview上的数字,更改文本的颜色等(此方法可执行大约12个atm)。我有一个按钮,我想要做的是,当按下按钮时我想停止使用在启动时调用的方法。例如;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpMethod();
removeMethod();
}
public void removeMethod(){
Code for button and listener
.......
.......
.......
.......
{
答案 0 :(得分:2)
你可以把它放在线程中,你可以根据需要暂停/停止。
这里是关于java中线程的简单教程,你可以把你放在你想要在setUpMethod()中做的线程中。
http://www.tutorialspoint.com/java/java_multithreading.htm
并使用Thread控制方法来控制代码的执行。
答案 1 :(得分:0)
您只需阅读setUpMethod()
,找出每个操作的相反内容,并将所有撤消步骤放在removeMethod()
中。如果您需要更多帮助,请发布setUpMethod()
的代码。
答案 2 :(得分:0)
如果你在主线程上做这些事情,你就无法停止,因为你所做的一切都是在一个威胁上。应该完成12件事,然后调用removeMethod()。 只需将removeMethod方法中的所有12个更改恢复为初始状态 - 将text,textColor和其他内容恢复为初始值
答案 3 :(得分:0)
To"当按下按钮时停止再次调用该方法",在某处创建一个布尔值,并添加该行
if (wasRunAlready) return;
开头和
wasRunAlready = true;
到setUpMethod()
的结尾。然后内部代码将无法运行两次。