【问题标题】:android is it possible to know time application spend in bgandroid是否可以知道应用程序在bg中花费的时间
【发布时间】:2013-08-14 13:20:23
【问题描述】:

任何安卓应用程序都包含许多活动,foreground 中只能有一个活动。 所以我想知道一个特定的应用程序在后台需要多少次。

我是说这个

应用程序启动->应用程序转到前台->用户在应用程序中播放->应用程序转到bg(这里我要节省时间)->应用程序转到前台(这里我要节省时间)

通过减去两次,我可以知道应用程序在后台花费的时间是多少,但这是一项非常艰苦的工作,因为我必须为所有活动编辑 on pauseon resumes,我有超过 200 个活动。

假设

我认为 mainfest 有一些东西可以解决我的问题,但我找不到。

【问题讨论】:

  • onPause方法中设置一个变量分配给系统时间,然后在onResume中再次检查systemTime并为具体的Activity做出区别。

标签: android android-activity


【解决方案1】:

一种解决方案是创建您自己的活动类(扩展 Activity 的类)并将其用作所有活动的基础。在您自己的活动中,您可以保留所有活动共享的代码。

您仍然需要编辑所有活动来扩展这个新类,但添加这样的东西要容易得多。

【讨论】:

    【解决方案2】:

    为所有 200 个活动编写一个超级活动,并为每个活动扩展超级活动。处理 onpause() 和 onresume() 方法的 Superactivity 中的时间测量。

    Example :
    
    Parent activity:
    class ParentActivity extends Activity
    {
    // here in onResume and onPause methods handle your time measurment things...
    }
    
    ChildAcitivity:
    
    class ChildActivity extends ParentActivity
    {
    @override
    public void onPause()
    {
    super.onPause();
    }
    @override
    public void onResume()
    {
    super.onResume();
    }
    }
    

    【讨论】:

    • 这是正确的方法。创建一个扩展 Activity 的“BaseActivity”类,并且所有活动都从该类扩展。这样,任何时候您需要为所有 200 个活动添加更改,您只需在“BaseActivity”文件中添加更改即可。您仍然需要修改您的 200 个活动以说“扩展 BaseActivity”而不是“扩展活动”,但这可以通过单个搜索和替换操作来完成,而不是一遍又一遍地粘贴相同的代码块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2012-04-20
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    相关资源
    最近更新 更多