gpt4 book ai didi

java - 在 android 中关闭应用程序时,Java 类的实例不会变为 null

转载 作者:行者123 更新时间:2023-12-01 11:24:37 26 4
gpt4 key购买 nike

我有一个类定义为

public class ApiManager
{
private static ApiManager mInstance;
public static synchronized ApiManager getInstance()
{
return mInstance;
}

public ApiManager(Context mContext)
{
this.mContext = mContext;
mInstance = this;
}
}

我的 SplashActivity 定义为

public class SplashActivity extends BaseActivity
{
private String gcmRegId;
private GoogleCloudMessaging gcm;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancelAll();

try {
if(ApiManager.getInstance() != null)
{
/* Activity already present. We need to move to main activity */
finish();
Intent i = new Intent(this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
return;
}
}
catch (Exception e1)
{
}

我的 MainActivity onDestroy 定义为

@Override
public void onBackPressed()
{
if(isFullScreen)
{
animateFullScreenClose();
if (mainMapFragment.postLayout.getVisibility() == View.VISIBLE)
mainMapFragment.closePinDetails();
}
else
{
MyApplication.getInstance().disconnectGoogleApi();
SocketManager.getInstance().closeConnection();
finish();
MyApplication.getInstance().stopService();
}
}
}

当我按下后退按钮时。一切都应该停止。应用程序关闭。

但是,当我使用 android 主菜单上的启动器图标再次打开应用程序时,if(ApiManager.getInstance() != null) 无法将其视为 null,而不是 Splash,我最终进入了 mainActivity ,

如果应用程序关闭,为什么 ApiManager.getInstance() 不为 null。

最佳答案

静态对象是每个进程的。您关闭了 Activity,但没有关闭进程,因此 ApiManager.getInstance 中仍然有值,为了清除该值并再次返回到初始屏幕,只需在 onDestroy 处手动清除对象即可 你的MainActivity

onDestroy(){ ApiManager.clear(); }

public static void clear(){ if (mInstance != null){ mInstance = null; }

关于java - 在 android 中关闭应用程序时,Java 类的实例不会变为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com