标签: android-lifecycle

在应用生命周期中调用一次?

为了在应用程序的生命周期中只调用一次方法,而不是每次启动应用程序时,我应该在哪里放置这样的方法?

onCreate()其他地方?

android android-lifecycle

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

onPause,onResume,onStop,onStart等,没有开火 - 生命周期?

我有两个应用程序在平板电脑上一起工作.我注意到,如果用户退出一个应用程序并且下次打开应用程序时oncreate被调用,但是如果他们回到主页然后返回oncreate则不会被调用..我也注意到onPause,onStop,onResume永远不会被调用..我需要一些如何确保应用程序完成,如果用户打回家..

@Override
    protected void onPause () {
        super.onPause();
        Toast.makeText(this, "Pause MED", Toast.LENGTH_SHORT).show();
        finish();
    }

    @Override
    protected void onStop () {
        super.onStop();
        Toast.makeText(this, "stopped MED", Toast.LENGTH_SHORT).show();
    }


    @Override
    protected void onRestart () {
        Toast.makeText(this, "Restart MED", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onStart () {
        Toast.makeText(this, "Start MED", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onResume () {

        super.onResume();
        Toast.makeText(this, "RESUME MED", Toast.LENGTH_SHORT).show();
        Intent currentIntent = this.getIntent();
        Bundle extras = currentIntent.getExtras();
Run Code Online (Sandbox Code Playgroud)

或另一个选择是,如果我的其他应用程序可以检查应用程序是否打开并关闭它..

请帮忙

android android-lifecycle

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

运行多个服务实例

是否可以多次启动服务.意味着多次调用startService.我知道如果我打电话 startService,它会打电话onCreate() -> onStartCommand().在startService,它只打电话onStartCommand()没有onCreate().服务会怎样?它是否创建了多个服务实例?

android android-service android-lifecycle

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

我们如何在onPause()中确定应用程序/活动是否进入后台(onStop)或将被销毁(onDestroy)

我最近有一个电话采访会议,面试官问了一个非常奇怪的问题.他想知道,如果我们可以以任何方式,知道一个活动/应用程序将只是停止(的onStop)仅或被破坏(的onStop随后的onDestroy)甚至发生之前,当流量中的onPause方法.

我的意思是执行将在onPause内部,从那里你可以判断onDestroy(应用程序关闭)还是onStop(背景).

无法在任何地方找到答案.

android android-lifecycle android-activity

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

Android - 确保在服务器的进程被操作系统杀死时释放Wakelock

FusedLocationProvider即使屏幕关闭,我也想让我为位置ping.为此,在我的服务中,我有一个PARTIAL_WAKE_LOCK,以保持CPU运行,并确保即使屏幕关闭,服务仍继续运行.

话虽如此,我知道Android OS会在需要内存时在后台扼杀服务/应用程序.因此,我的服务可以被杀掉.

发生这种情况时,onDestroy()Service不能保证被调用.如果是这种情况,我如何确保WakeLock被释放?

我打电话mWakeLock.acquire();onStartCommand,和onDestroy我打电话mWakeLock.release();

android android-service android-lifecycle android-wake-lock

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

android阻止视图恢复其状态

大多数内置小部件在配置更改时恢复其状态.
但是现在我想要禁用此功能.
我在onCreate()调用期间将特定视图设置为某个值,并且如果设备已旋转,则在onRestoreInstanceState()期间更改它.
我可以在onRestoreInstanceState()之后重置它,但也许有另一种方法可以做到这一点.

android android-lifecycle

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

我应该删除onDestroyView中的OnClickListener吗?

我为我的按钮设置了监听器:

  View onCreateView(...) {
    ...
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //some work
        }
    });
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果我使用ButterKnife,建议打电话给ButterKnife.unbind(this)onDestroyView(){..}.我是否需要删除侦听器以避免内存泄漏?

void onDestroyView() {
    ...
    btn.setOnClickListener(null)
}
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-fragments android-memory butterknife

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

LifecycleRegistry实例何时开始侦听LifecycleOwner的生命周期更改?

我已经开始学习架构组件,但是找不到一件事。

LifecycleFragment仅创建一个新的LifecycleRegistry对象,该对象不会开始观察该片段的生命周期。

我猜想,例如,当我们将LifecycleRegistry对象作为第一参数放入LiveData.observe()时,LifecycleRegistry对象就开始监听该片段的生命周期,但是我在源代码中找不到任何证明。

问题:LifecycleRegistry对象何时以及如何开始观察片段的生命周期并刷新LifecycleRegistry.mState

android android-lifecycle android-architecture-lifecycle

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

当savedInstanceState为非null时的情况

如果我没有显式调用onSaveInstanceState(),哪些是可能性,何时savedInstanceState不为null onCreate

我看到一个选项,当系统在崩溃后重新创建我的应用程序时 - 然后savedInstanceState不是null.

还有哪些其他选择?

android android-lifecycle android-activity android-bundle android-savedstate

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

在android版本8.0中,我使用工作管理器定期触发广播,但是当我从最近的任务中清除应用程序时,它不起作用

我已安排工作经理定期在特定时间执行任务。但它正在与其他Android版本一起使用,例如25或更低版本。当我在API 28上运行它时,如果我从最近的列表中清除应用程序,它将停止触发广播。

我在活动中安排了这样的工作经理:

 OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(MyWorker.class).setInitialDelay(15, TimeUnit.SECONDS).build();
 WorkManager.getInstance().enqueue(mywork);
Run Code Online (Sandbox Code Playgroud)

这是我的工人班:

public class MyWorker extends Worker {
    @NonNull
    @Override
    public Worker.WorkerResult doWork() {
        // Do the work here
        Mylogger.getInstance().printLog("MyWorr","doWork()");
        //fire broadcast from here
        Intent broadcastIntent = new Intent(getApplicationContext(), TimeMatchingBroadcastReceiver.class);
        getApplicationContext().sendBroadcast(broadcastIntent);
        CommonUtils.scheduleWorkManager();
        // Indicate success or failure with your return value:
        return WorkerResult.SUCCESS;

        // (Returning RETRY tells WorkManager to try this task again
        // later; FAILURE says not to try again.)
    }
}
Run Code Online (Sandbox Code Playgroud)

即使关闭或清除所有版本的android上的最新应用程序,我也要执行工作管理器。谢谢。

android android-service android-lifecycle android-jetpack android-workmanager

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