2012-09-28 35 views
0

我的應用程序出現問題。我有一個名爲ExperimentView的活動,它具有一個名爲FrameRoll的內部類,它實現了Runnable。onActivityResult未從主類調用

public class ExperimentView extends Activity implements OnClickListener,{ 

    public void onCreate(Bundle savedInstanceState) { 
     //Other stuff 
     //Call the gpshandler activity 
     gpsCall(); 
    } 

    public void gpsCall() { 
    if (gpsEnabled.equalsIgnoreCase("true")) { 

     Intent gpsHandler = new Intent(ExperimentView.this, 
       GpsHandler.class); 
     startActivityForResult(gpsHandler, 
       GPSHANDLER_ACTIVITY_RETURN); 
finish(); 

     } 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    //retrieve the data 
    } 

    public class FrameRoll implements Runnable { 
    //do other stuff 
    } 

}

我打電話從onCreate方法一個子活動,以檢索數據成功檢索一些GPS data.The GPS。

public class GpsHandler extends Activity { 

    //obtain location 
enter code here 
Intent resultIntent = new Intent(); 
       resultIntent.putExtra("location", 
         optimalLocation.toString()); 

       setResult(Activity.RESULT_OK, resultIntent); 

}

當我打電話從內部類(frameroll)子活動的正常運行,但在ExperimentVIew方法onActivityResult不會被調用的子活動,所以我沒有得到任何數據備份。

public class ExperimentView extends Activity implements OnClickListener,{ 

    public void onCreate(Bundle savedInstanceState) { 
     //Other stuff 
     //Call the gpshandler activity 
     gpsCall(); 
    } 

    public void gpsCall() { 
    if (gpsEnabled.equalsIgnoreCase("true")) { 

     Intent gpsHandler = new Intent(ExperimentView.this, 
       GpsHandler.class); 
     startActivityForResult(gpsHandler, 
       GPSHANDLER_ACTIVITY_RETURN); 

     } 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    //retrieve the data 
    } 

    public class FrameRoll implements Runnable { 
    gpsCall(); 
    } 

}

我已經嘗試了不同的東西,其中包括在嵌套類實現onActivityResult,試圖做類似ExperimentView.this.startActivityForResults(),我印在gpshandler的callingActivity,它是ExperimentView。

我試過的每一個方法都失敗了。只有當從onCreate調用子活動時,纔會調用onActivityResult。是否有人知道我該怎麼做?

感謝名單:)

回答

1

onActivityResult一旦你所謂的活動結束時調用。因此,設置結果後需要撥打finish();。例如:

setResult(Activity.RESULT_OK, resultIntent); 
finish(); 

*請確保您GpsHandler類的正確實施活動的規定,因爲它似乎並沒有覆蓋的onCreate和/或其他方法。

+0

對不起,我忘了添加完成();但是我的代碼沒有解決。所以這並不能解決任何問題。我的主要問題是,當onCreate調用相同的東西時,它會非常完美。當從內部類調用onActivity時,不會調用 –

+0

它取決於if你的runnable在UI線程上運行,那麼它肯定會工作。告訴我你是如何執行你的可運行 – waqaslam

+0

這裏是內部類。gpscall在底部 http://pastebin.com/Vxw68F4U –