如何引用另一个类的当前或主要活动

And*_*Dev 54 android android-context android-activity

我经常发现自己需要访问需要引用某些活动的方法.例如,要使用getWindowManager,我需要访问一些Activity.但是,我使用这些方法的代码通常在其他一些没有引用活动的类中.到目前为止,我已经存储了对主要活动的引用,或者将某些活动的上下文传递给了该类.有没有更好的方法来做到这一点?

Ale*_*zzi 19

如果您已有一个有效的上下文,只需使用: Activity activity = (Activity) context;

  • 除非上下文恰好是应用程序,在这种情况下将导致 ClassCastException。 (2认同)

Sam*_*iya 14

传递上下文是refrence Activity的更好方法.

您可以将Context传递给另一个类.

在活动::

AnotherClass Obj  = new AnotherClass(this);
Run Code Online (Sandbox Code Playgroud)

另一类

class AnotherClass{

public AnotherClass(Context Context){

    }

}
Run Code Online (Sandbox Code Playgroud)

  • 请解释为什么这是更好的方法? (4认同)

Vla*_*nov 5

您可以在活动中实现必要的方法并实现Handler.然后,只需将处理程序实例传递给您的类,您可以在其中获取处理程序的消息并将其发送到目标.