我在启动完成时通过广播接收器运行前台服务。它根据需要启动服务,只占用设备内存的一小部分,当我启动应用程序时,它会增加设备内存使用量,但当我关闭应用程序时,即使应用程序已被占用,它仍然占用太多内存关闭,只有前台服务正在运行。我真正想要的是它应该在应用程序关闭后使用与打开应用程序之前使用的内存量相同的内存量。
所以,我做了一些挖掘利用Android探查和我发现的是,当前景的服务,只打开行李箱后开始Application.class,BroadcastReceiver.class,Service.class和其他一些背景的类。当我打开应用程序时,它会打开上述所有课程和其他活动。但是当我关闭应用程序时,它仍然使用设备内存来支持图形。我不知道如何在应用程序关闭后停止该内存使用。
这是我的Android Profiler 的一些屏幕截图
在通过前台通知启动应用程序之前使用了 65MB
现在我想知道如何实现使用之前65MB的内存使用量的任务?
这是我的 BroadcastReceiver 和 Service.class 代码。
广播接收器
public class BootCompletedIntentListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())){
Intent serviceIntent = new Intent(context,ClipMonitorService.class);
ContextCompat.startForegroundService(context,serviceIntent);
}
}
}
Run Code Online (Sandbox Code Playgroud)
服务
public class ClipMonitorService extends Service {
private static final String TAG = "ClipboardManager";
private ExecutorService mThreadPool = …Run Code Online (Sandbox Code Playgroud) Firebase 身份验证标识符从 Facebook 登录存储什么值如果用户未使用电子邮件注册但使用电话号码注册。我的应用程序提供 facebook 登录,但现在当用户继续使用 Facebook 登录时,我的 firebase auth 将电子邮件地址存储为标识符,但是当有人通过 facebook 登录登录我的应用程序时,他已在 facebook 中注册了电话号码,然后我的 firebase auth 正在存储标识符中的空值。那么我应该怎么做才能将来自 facebook 的用户电话号码存储为 identofier 或 facebook id 作为标识符,例如 id_abcd@facebook.com