我有一个问题。出于分析目的,我需要跟踪 APP(而非活动)何时恢复。我现在遇到的问题是,如果我将跟踪器放在活动的 OnResume 事件上,那么每次用户在不同的活动上来回切换时,它都会被触发。
我怎样才能避免这种情况?如何跟踪真正的“应用程序恢复”(当用户实际退出应用程序并返回时)而不是活动恢复?
非常感谢任何想法。谢谢。
我有一个问题。出于分析目的,我需要跟踪 APP(而非活动)何时恢复。我现在遇到的问题是,如果我将跟踪器放在活动的 OnResume 事件上,那么每次用户在不同的活动上来回切换时,它都会被触发。
我怎样才能避免这种情况?如何跟踪真正的“应用程序恢复”(当用户实际退出应用程序并返回时)而不是活动恢复?
非常感谢任何想法。谢谢。
我遇到了同样的问题并通过创建基本活动来解决它:
public class mActivity extends Activity{
public static final String TAG = "mActivity";
public static int activities_num = 0;
@Override
protected void onStop() {
super.onStop();
activities_num--;
if(activities_num == 0){
Log.e(TAG,"user not longer in the application");
}
}
@Override
protected void onStart() {
super.onStart();
activities_num++;
}
}
我的应用程序中的所有其他活动都继承了 mActivity。当一个活动不再可见时,就会调用 onStop。当activity_num == 0 时,所有活动都不可见(意味着用户关闭应用程序或将其传递到后台)。当用户启动应用程序(或从后台重新启动它)时,将调用 onStart(当活动可见时调用 onStart)并且 activity_num > 0。希望对您有所帮助...
使用应用程序的 Application 对象(请参阅http://developer.android.com/reference/android/app/Application.html)。如果您创建一个自定义应用程序类并在您的 AndroidManifest.xml 文件中配置它,您可以执行以下操作:
onCreate()
在 Application 对象中开始跟踪。onPause()
和onResume()
方法检查应用程序对象并查看它们是否是第一个运行的活动,或者它们是否继续之前运行的应用程序实例。onDestroy()
在 Application 对象中停止跟踪。在某种程度上,大多数分析包(Flurry 及其同类)都在做类似的事情。你需要做一些状态机工作才能让它正常工作,但它不应该太复杂。
而不是 OnResume(),挂钩到您的主要活动的 OnCreate() 事件。