2013-04-30 124 views
0

在我的应用程序中,我尝试设置超时函数,我无法在单独的类中调用处理程序方法。如何从Android中的独立类调用处理程序?

我超时类

public class Timeout_function { 

private Handler mHandler; 
Activity activity; 

public Timeout_function(Activity activity,Handler mHandler) { 
    super(); 
    this.activity = activity; 
    this.mHandler = mHandler; 
} 

Runnable myTask = new Runnable() { 
    @Override 
    public void run() { 
     Toast.makeText(activity, "Test", 1000).show(); 
     mHandler.postDelayed(this, 1000); 
    } 
}; 

// just as an example, we'll start the task when the activity is started 
public void onStart() { 
    mHandler.postDelayed(myTask, 1000); 
} 

// at some point in your program you will probably want the handler to stop 
// (in onStop is a good place) 
public void onStop() { 

    mHandler.removeCallbacks(myTask); 
} 
} 

主类 在主类中我打电话这样的方法,但它显示了在运行时错误,

Timeout_function timeout = new Timeout_function(this, mHandler); 
    timeout.onStart(); 

如何调用主类中的方法。任何人都知道请帮我解决这个问题。

+0

你是什么意思的“处理函数”,因为你的'mHandler'是一个对象。另外,你为什么认为你不能打电话?另外,你的架构是什么?代码调用哪个应该与'Handler'交互? – 2013-04-30 07:43:39

+0

@ClassStacker如何开始与处理程序的交互。 – Yugesh 2013-04-30 07:47:12

+0

我相信你已经从一个Activity中提取了这段代码,其中'onStart'将作为'Activity'生命周期的一部分被调用。它没有这样做,所以现在你必须自己调用onStart。 – 2013-04-30 07:54:31

回答

0

而不是创建一个单独的类为什么你不使用Service

我会坚持让你通过电话startService(intent);

在服务onStartCommand()使用服务并启动使用处理器可运行,你可以通过将其内部服务onDestroy()方法和stopService(intent)呼吁停止使用处理器了Runnable。

这就是我所做的,它就像一个魅力!

+0

我对这个概念很陌生,如何在我的应用程序中实现服务。 – Yugesh 2013-04-30 09:03:08

+0

请谷歌为此,你会发现在Android中创建服务的吨的例子。 – 2013-04-30 09:04:39

相关问题