我正在使用帮助器类,并想知道使用Acitvity对象和使用Context对象之间的实际区别是什么。
假设我有一个类,并说我在这个类中创建一个帮助对象:
Helper h = new Helper(this);
现在我可以像这样设置我的助手类:
public class Helper {
private Activity a;
public Helper(Activity a) {
this.a = a;
}
}
或者我可以这样做:
public class Helper {
private Context c;
public Helper(Context c) {
this.c = c;
}
}
我应该何时使用哪种方法?有什么优点和缺点?
答案 0 :(得分:1)
使用:
class PiWorker : public NanAsyncWorker {
public:
PiWorker(NanCallback *callback, int points)
: NanAsyncWorker(callback), points(points) {}
~PiWorker() {}
// Executed inside the worker-thread.
// It is not safe to access V8, or V8 data structures
// here, so everything we need for input and output
// should go on `this`.
void Execute () {
estimate = Estimate(points);
}
// Executed when the async work is complete
// this function will be run inside the main event loop
// so it is safe to use V8 again
void HandleOKCallback () {
NanScope();
Local<Value> argv[] = {
NanNull()
, NanNew<Number>(estimate)
};
callback->Call(2, argv);
};
private:
int points;
double estimate;
};
// Asynchronous access to the `Estimate()` function
NAN_METHOD(CalculateAsync) {
NanScope();
int points = args[0]->Uint32Value();
NanCallback *callback = new NanCallback(args[1].As<Function>());
NanAsyncQueueWorker(new PiWorker(callback, points));
NanReturnUndefined();
}
比使用更具体:
public Helper(Activity a) {
this.a = a;
}
这意味着(例如),如果您致电public Helper(Context c) {
this.c = c;
}
如果你有两个“具有不同返回类型的构造函数”,它将首先引用Helper(MainActivity);
! 。
相近:
Helper(Activity a)
和Class(Object o)
调用Class(String s)
会导致Class(null)
而不是Class(String s)
上下文是基础对象,因此每个活动都会扩展上下文:
Class(Object o)
希望这会有所帮助。