【发布时间】:2021-03-02 04:14:15
【问题描述】:
我正在尝试从另一个班级致电MainActivity.my_method(),但我得到了:
无法从静态上下文引用非静态方法 my_method(Context)。
MainActivity.java
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
my_method(); //WORKS WELL
}
public void my_method(Context context) {
context.startActivity( new Intent( Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, Uri.parse( "package:" + context.getPackageName() ) ) );
}
}
My_view.java
class My_view extends SurfaceView implements SurfaceHolder.Callback {
class My_viewThread extends Thread implements SensorEventListener, OnTouchListener{
…
private Context mContext;
…
public void my_calling_method() {
MainActivity.my_method(mContext);
}
....
任何帮助将不胜感激。
【问题讨论】:
-
你做错了,不要创建 Activity 的新实例,因为 Activity 本身需要由框架创建和处理。在您的情况下,调用以获取包名称会导致 null 异常,因为没有上下文信息。看看这个问题,它将帮助您了解发生了什么:stackoverflow.com/questions/44582309/…
标签: java android nullpointerexception