如何在android中从单独的类调用处理程序?
在我的应用程序中,我试图设置一个超时函数,但无法在单独的类中调用处理程序方法 我的超时类如何在android中从单独的类调用处理程序?,android,android-handler,Android,Android Handler,在我的应用程序中,我试图设置一个超时函数,但无法在单独的类中调用处理程序方法 我的超时类 public class Timeout_function { private Handler mHandler; Activity activity; public Timeout_function(Activity activity,Handler mHandler) { super(); this.activity = activity; this.mHandler =
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);
}
}
主类
在main类中,我以这种方式调用该方法,但它在运行时显示错误
Timeout_function timeout = new Timeout_function(this, mHandler);
timeout.onStart();
如何在main类中调用该方法。有人知道吗请帮我解决这个问题。不要创建单独的类,为什么不使用 我会坚持让您通过调用
startService(intent)在服务的onStartCommand()
中使用服务并启动可运行的处理程序代码>
您可以通过将Runnable using处理程序放置在服务的ondestory()
方法中并通过stopService(intent)
调用来停止它
这就是我所做的,它就像一个符咒 你所说的“处理函数”是什么意思,因为你的mHandler
是一个对象。还有,为什么你认为你不能打电话?另外,你的架构是什么?调用的代码应该在哪里与处理程序
交互?@ClassStacker如何启动与处理程序的交互。我相信您已经从活动中提取了此代码,其中启动
将作为活动
生命周期的一部分为您调用。它没有这样做,所以现在你必须自己调用onStart
。我对这个概念很陌生,就是如何在我的应用程序中实现服务。请用谷歌搜索一下,你会发现很多在Android中创建服务的例子。