Android 未从主类调用onActivityResult
我的应用程序有问题。我有一个名为“实验视图”的活动,它有一个名为FrameRoll的内部类,它实现了RunnableAndroid 未从主类调用onActivityResult,android,android-intent,Android,Android Intent,我的应用程序有问题。我有一个名为“实验视图”的活动,它有一个名为FrameRoll的内部类,它实现了Runnable public class ExperimentView extends Activity implements OnClickListener,{ public void onCreate(Bundle savedInstanceState) { //Other stuff //Call the gpshandler activity
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数据。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
,尝试执行类似于实验视图的操作。这个.startActivityForResults()
,我在gpshandler中打印了callingActivity,它就是实验视图
我尝试的每个方法都失败了。只有在从onCreate
调用子活动时,才会调用onActivityResult。没有人知道我该怎么做吗
Thanx:)onActivityResult在被调用的活动完成后被调用。因此,您需要调用
finish()代码>设置结果后。例如:
setResult(Activity.RESULT_OK, resultIntent);
finish();
*确保您是GpsHandler
类符合活动的正确实现,因为它似乎不会覆盖onCreate和/或其他方法。对不起,我忘了添加finish();但是我的代码中有它。所以这并不能解决任何问题。我的主要问题是,当在创建时调用相同的东西时,它会非常完美。当从内部类调用它时,onActivity不会被调用。这取决于,如果runnable在UI线程上运行,那么它肯定会工作。演示如何执行runnableHere。它是内部类。gpscall位于底部