【发布时间】:2018-03-11 07:47:34
【问题描述】:
您好,我是 android 新手,还在学习中。我的问题是,例如我有一个在 MainActivity 中创建的方法,我需要从另一个类中调用它。
获取 MainActivity 的实例以便我可以从另一个类调用 MainActivity 中的方法是一种好习惯吗?
这是一个例子:
public class MainActivity extends AppCompatActivity {
private static MainActivity inst;
public static MainActivity instances()
{
return inst;
}
@Override
public void onStart() {
super.onStart();
inst = this;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void showToast (String text){
Toast.makeText(inst, text, Toast.LENGTH_SHORT).show();
}
那么这是另一个类:
public class broadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
MainActivity instance = new MainActivity();
instance.showToast(AnyText);
}
}
我在看教程时看到了这种类型的编码,想知道这是否是一种好的做法,或者可能有更好的方法?因为我收到不要将 Android 上下文类放在静态类中
的警告提前感谢您提供任何见解或帮助! :D
【问题讨论】:
-
我认为你可以使用
MainActivity instance = new MainActivity();在任何你想要的地方直接创建实例,不需要使用任何方法返回任何类的实例。
标签: android