标签: application-lifecycle

有没有办法检查iOS应用程序是否在后台?

我想检查应用程序是否在后台运行.

在:

locationManagerDidUpdateLocation {
    if(app is runing in background){
        do this
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c uiapplicationdelegate application-lifecycle ios ios-background-mode

177
推荐指数
6
解决办法
8万
查看次数

Activity.finish()方法到底在做什么?

我正在开发Android应用程序一段时间,并且关注了很多关于活动生命周期和应用程序生命周期的帖子.

我知道Activity.finish()方法调用的方法Activity.onDestroy(),并从堆栈中删除活动,我想它以某种方式指向操作系统和垃圾收集器,他可以"做他的把戏"并释放内存,当它发现它是一个很好的时间做所以....

我来到这篇文章 - 退出申请不赞成?并阅读Mark Murphy的回答.

这让我对这个finish()方法究竟是做什么感到困惑.

我有机会打电话finish(),onDestroy()不会打电话吗?

android application-lifecycle activity-lifecycle ondestroy

148
推荐指数
7
解决办法
20万
查看次数

使用Android Application类来保存数据

我正在开发一个相当复杂的Android应用程序,它需要关于应用程序的大量数据(我说总共大约500KB - 这对于移动设备来说是否很大?).据我所知,应用程序中的任何方向更改(在活动中,更准确地说)会导致活动的完全破坏和重新创建.根据我的发现,Application类没有相同的生命周期(即,所有意图和目的,它总是被实例化).将状态信息存储在应用程序类中然后从Activity引用它是否有意义,或者由于移动设备上的内存限制,这通常不是"可接受的"方法?我真的很感激有关这个主题的任何建议.谢谢!

android application-lifecycle

109
推荐指数
3
解决办法
7万
查看次数

何时调用Application的onCreate()方法?

在我的Android应用程序中,我有一个DefaultApplication扩展的类android.app.Application,并在其中onCreate()绑定了一些服务,这些服务将由我在此应用程序中的其他活动使用.

我也有一个BroadcastReceiver侦听和接收C2DM消息.当此接收器在应用程序未运行时收到消息时,它将触发一个对话框,显示即将发送的消息,它将启动我的应用程序的活动.

我的问题是,当我开始一个没有任何交互的活动时DefaultApplication,我DefaultApplicationonCreate()被调用是因为该应用程序的活动已经开始了吗?

以下是我的定义和清单DefaultApplication:

public class DefaultApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        doBindService();

    }

    void doBindService() {

        // Establish a connection with the service. We use an explicit
        // class name because we want a specific service implementation that
        // we know will be running in our own process (and thus won't be
        // supporting component replacement by other applications). …
Run Code Online (Sandbox Code Playgroud)

android application-lifecycle oncreate android-activity

55
推荐指数
3
解决办法
6万
查看次数

取消注册Activity生命周期回调的正确方法是什么?

在Android Application类中,您可以注册/取消注册ActivityLifecycleCallbacks,它允许您在一个地方监视应用程序中的Activity生命周期事件(如果您愿意).

调用unregisterActivityLifecycleCallbacks的适当位置在哪里?我正在onCreate注册,并且认为onTerminate只是从方法的名称开始才是合适的位置,但文档对onTerminate()说:

此方法用于模拟过程环境.永远不会在生产Android设备上调用它,只需杀死它们即可删除进程; 这样做时不会执行任何用户代码(包括此回调).

我没有在Application类中看到任何其他方法,其中进行了'shutdown'类型的回调.你甚至需要取消注册吗?

android application-lifecycle activity-lifecycle

21
推荐指数
1
解决办法
4210
查看次数

将应用程序兼容性更新到 1.4.1 后 ProcessLifecycleOwner 无法工作

我正在调查一个奇怪的问题,我们将 更改androidx.appcompat:appcompat1.3.11.4.1突然我们的LifecycleObservers观察过程生命周期停止发出任何事件。

我也在使用"androidx.lifecycle:lifecycle-extensions:2.2.0",我知道这已经被弃用,但如果 appcompat 是,它可以完美地工作1.3.1

我已在清单中设置了正确的应用程序名称,我已根据文档的要求包含此提供程序。

        <provider
            android:name="androidx.startup.InitializationProvider"
            android:authorities="${applicationId}.androidx-startup"
            tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

初始化的示例,不起作用。该对象被注入到Application类中,并且生命周期观察器被添加,但从onStart未被onStop调用。

class AppLifecycle @Inject constructor(
    private val foregroundProxy: AppLifecycleProxy
) : LifecycleObserver {

    init {
        ProcessLifecycleOwner.get().lifecycle.addObserver(this)
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onStart() {
        foregroundProxy.onStarted()
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onStop() {
        foregroundProxy.onStopped()
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:根据 @EpicPandaForce 评论,将清单中的提供程序块更改为:

 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities=\"${applicationId}.androidx-startup"
    android:exported="false"
    tools:node=\"merge">
    <!-- If you are using androidx.startup to initialize other components -->
    <meta-data
        android:name="androidx.lifecycle.ProcessLifecycleInitializer"
        android:value="androidx.startup" …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat application-lifecycle android-lifecycle

17
推荐指数
3
解决办法
6423
查看次数

在应用程序类中注册和取消注册BroadcastReceiver

我有一个广播接收器,它在Android Applcation类的onCreate()方法中注册但是如何取消注册

public class MyApplication extends Application {


@Override
public void onCreate() {
    super.onCreate();
    registerReceiver(broadcastReceiver, new IntentFilter("TIMEZONE_CHANGED"));
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我在应用程序onCreate()方法中注册了它,并且Application类中没有onDestroy()/ onStop()方法来取消注册broadcastReceiver.

如何实现它

java android application-lifecycle android-lifecycle

15
推荐指数
2
解决办法
7607
查看次数

如何:调试 UIWindows 在初始应用程序激活之前创建

我的控制台今天发布了这个错误, [ApplicationLifecycle] UIWindows were created prior to initial application activation. This may result in incorrect visual appearance.

这导致应用程序 UI 行为不正常。我以前从未见过这种情况,需要了解从哪里开始调试。

macOS: Catalina 10.15
XCode version: Version 11.1 
Run Code Online (Sandbox Code Playgroud)

application-lifecycle ios

9
推荐指数
1
解决办法
2756
查看次数


当我的活动得到关注时,会调用哪种方法?(通过电话,后退键,家庭钥匙等...)

我的应用程序有问题.它有很多活动.其中两个有谷歌地图视图.我的A活动有一个完整的MapView,我的B活动有一个小的MapView.好的,当我在B活动上并且有时按回键直到我返回到我的A活动时,我的A活动的地图显示有错误,屏幕底部有一个黑色区域.这只发生在我从B活动中按回来时.

因此,我需要知道在获得焦点时在A中调用哪个方法,因为我需要实现/覆盖它以从SCRATCH REPAINT ALL THE WINDOW.

还有哪些代码我需要从头开始重新绘制所有窗口?

android google-maps application-lifecycle

8
推荐指数
1
解决办法
1万
查看次数