【发布时间】:2018-08-03 21:19:30
【问题描述】:
假设我有一个 Android Activity (SecondaryActivity),它从 MainActivity 开始
SecondaryActivity 包含一个文本视图,TextView tv;
我有一个看起来像这样的单例:
public class Singleton {
private static final Singleton instance = new Singleton();
private static TextView secTextView;
public static Singleton getInstance() {
return instance;
}
public void setTV(TextView tv){
secTextView = tv;
}
public TextView getTV(){
return secTextView;
}
}
在我的SecondaryActivity 我这样做:
Singleton.getInstance().setTV(findViewById(R.id.sec_text_view));
现在想象一下,我稍后在 SecondaryActivity 中运行 finish(),因此程序状态返回到 MainActivity,将 SecondaryActivity 从 Activity 堆栈中弹出。
现在想象MainActivity 运行
startActivity(new Intent(getApplicationContext, SecondaryActivity.class));
再一次。
在这之后,如果我运行
Singelton.getInstance().getTV().setText("hello world"));
我们是否会在当前位于 Activity 堆栈顶部的 Activity 中引用 TextView?
另外,我的方法一般有什么明显的问题吗?
【问题讨论】:
标签: android android-activity view singleton