当应用重定向到设置时,会调用哪个活动生命周期

时间:2014-09-02 06:17:12

标签: android android-activity gps lifecycle

在我的应用程序中,如果未启用gps,则调用gps设置菜单。我在Oncreate()方法中调用了它。但是,我还想检查用户是否实际启用了它?

我的问题是当用户从设置菜单返回时调用哪个活动生命周期方法。

我尝试为OnResume方法编写代码。但即使启用GPS,alertdilogue也会继续弹出。

    if (gps.canGetLocation()) {

        latitude = gps.getLatitude();
        longitude = gps.getLongitude();
        altitude = gps.getAltitude();
        gpsLocation = "Latitude: " + latitude + ", Longitude:" + longitude
                + ",Altitude:" + altitude;
        System.out.println("GPS @ Avaialable Form"+gpsLocation);

        Logger.e(this, "GPS Location", gpsLocation);
    } else {
        gps.showSettingsAlert();
    }

我在OnCreate()和

中调用了此代码
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    System.out.println("On Resume gets Called");


    if (gps.canGetLocation()) {

        latitude = gps.getLatitude();
        longitude = gps.getLongitude();
        altitude = gps.getAltitude();
        gpsLocation = "Latitude: " + latitude + ", Longitude:" + longitude
                + ",Altitude:" + altitude;
        System.out.println("GPS @ Avaialable Form"+gpsLocation);

        Logger.e(this, "GPS Location", gpsLocation);
    } else {
        gps.showSettingsAlert();
    }
在OnResume()方法中

2 个答案:

答案 0 :(得分:0)

一个很好的方法是使用触发的调用方法构建,当调用一个类似于pause()的事件时,然后记录事件的名称,然后你知道哪个类被触发到哪个时间

答案 1 :(得分:0)

据我所知,唯一可靠的方法是设置并通过监听器(GpsStatus.Listener)监听gps更改 - LocationManager #addGpsStatusListener(...)。 在onGpsStatusChanged方法中,您可以对GpsStatus#GPS_EVENT_STARTED或GpsStatus#GPS_EVENT_STOPPED做出反应,并通过Handler更改UI的更新。希望这会有所帮助: - )