相关疑难解决方法(0)

如何检测Android应用程序何时进入后台并返回前台

我正在尝试编写一个应用程序,它会在经过一段时间后返回到前台时执行某些特定操作.有没有办法检测应用程序何时发送到后台或带到前台?

android background foreground

369
推荐指数
18
解决办法
27万
查看次数

在onStart()之后直接调用片段onStop() - 为什么?

我的应用程序出现了一个奇怪的问题 -

A具有包含片段的片段活动 - 此片段启动AsyncTask onCreate()并取消AsyncTask onStop().我的问题出现了,因为虽然我的片段仍然在运行并且没有被遮挡,但它的onStop()几乎是在onCreate()之后直接调用的.

有谁知道如何追踪为什么会发生这种情况?

09-28 11:41:56.785: VERBOSE/SearchFragment1(924): onCreate()
09-28 11:41:56.796: VERBOSE/SearchFragment1(924): onStop()
Run Code Online (Sandbox Code Playgroud)

编辑

我从片段中删除了代码,我仍然感到困惑 - 问题仍然存在!我添加了几行日志记录:

09-28 14:09:00.242: VERBOSE/SearchResultsFragment1(1789): onAttach()
09-28 14:09:00.242: VERBOSE/SearchResultsFragment1(1789): onCreate()
09-28 14:09:00.242: VERBOSE/SearchResultsFragment1(1789): onCreateView()
09-28 14:09:00.242: VERBOSE/SearchResultsFragment1(1789): onActivityCreated()
09-28 14:09:00.242: VERBOSE/SearchResultsFragment1(1789): onStart()
09-28 14:09:00.246: VERBOSE/SearchResultsFragment1(1789): onStop()
09-28 14:09:00.246: VERBOSE/SearchResultsFragment1(1789): onStart()
09-28 14:09:00.246: VERBOSE/SearchResultsFragment1(1789): onResume()
Run Code Online (Sandbox Code Playgroud)

上述行为令人困惑.Activity中使用的代码如下所示:

if(savedInstanceState == null) 
{
    try {
        FragmentTransaction transaction= getSupportFragmentManager().beginTransaction();    
        Fragment currentFragment= (Fragment)Class.forName(getIntent().getAction()).newInstance();
        transaction.replace(R.id.singlePane, currentFragment);  
        transaction.commit();
    } catch ...
Run Code Online (Sandbox Code Playgroud)

这是调试期间的片段:

private static final boolean LOGGING_ENABLED = true;
private …
Run Code Online (Sandbox Code Playgroud)

lifecycle android

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

标签 统计

android ×2

background ×1

foreground ×1

lifecycle ×1