获取非活动类的onActivityResult(Android)

时间:2017-01-30 15:59:28

标签: java android android-activity

我确信在SO上有很多类似的问题,但不仅仅是我的用例。

我有一个BluetoothReader类,不会扩展任何超类。这会调用检查设备上是否启用蓝牙,如果不是则提示对话。

public class BluetoothReader {

   private Activity activity;

   public BluetoothReader(Activity activity){
     bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
     this.activity = activity;
   }
}

我使用下面的代码打开蓝牙

intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
activity.startActivityForResult(intent, REQUEST_ENABLE_BLUETOOTH);

一切正常,但现在我的困境是如何在同一课堂上获得这项检查的结果。

如果我正在扩展活动超类,我只需要覆盖onActivityResult。

我试过了:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // Doesn't work
}

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

如果您需要Activity或Fragment之外的结果,您的Activity类将需要覆盖onActivityResult,然后通过方法调用将该结果传递给您的其他类。

答案 1 :(得分:0)

BluetoothReader课程中:

public void onActivityResult(int requestCode, int resultCode, Intent result) {
    //some code
}

在您的主要内容中,重定向到此功能:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent result) {
    super.onActivityResult(requestCode, resultCode, result);
    BluetoothReader.onActivityResult(requestCode, resultCode, result);
 }

答案 2 :(得分:0)

活动结果 API,适用于生命周期。 这真是个好主意。