2010-10-11 57 views
0

问候。Java/Android中的线程

如何发送两个参数到一个线程和运行方法,当用户按下显示器上的按钮。在UI线程中使我的变量不起作用,并在UI线程随机重新启动时被擦除。

UI线程_ __ _ __ _ __ _ ____其他线程

用户按下按钮------->运行方法

干杯。

+0

如果你需要的东西呆在身边超越单一活动实例的生命周期,你可能想在使用服务来查找:http://developer.android.com/reference/android/app/Service.html – 2010-10-12 00:13:05

+0

如果我有一个对象,我把值放入它,屏幕方向改变我失去了该对象,它变成了空。我需要这样才不会发生。我可以用服务做到吗? – Mitchell 2010-10-12 00:30:40

回答

1

看一看这个blog article。它描述了如何让线程在屏幕旋转中工作。

3

我想你应该只是定义听众为您的按钮。而这些监听器应该反过来,用你想要的参数启动线程,执行其他任务,同时保持UI可用,并在这些线程执行时再次对用户负责。 你需要的东西是这样的:

public void onClick(View v) { 
    new Thread(new Runnable() { 
    public void run() { 
     Bitmap b = loadImageFromNetwork(); 
     mImageView.setImageBitmap(b); 
    } 
    }).start(); 
} 

这个例子是从Android Developers Blog,在那里你可以得到其他有用的信息和提示服用。

+0

这将不起作用,因为当屏幕方向更改时,变量仍然为零。 – Mitchell 2010-10-12 00:00:49

+0

你没有提到你的帖子中的屏幕方向改变。这还不是我已经处理过的,但最终,如果在屏幕方向更改时调用某个方法,则可以使用它来保存重要变量和/或将线程应用到线程使用的对象,如果需要暂时停止他们的活动,或向他们发出变化信号。 – 2010-10-12 00:58:25

+0

为什么run()而不是start()? – 2012-10-11 18:52:47