有哪些方法可以从其他类访问活动或片段的onRequestPermissionsResult

时间:2016-08-12 07:26:12

标签: java android class android-permissions

我正在尝试为 Android运行时权限创建帮助程序类代码段,在此示例中,我有两个类.cstaticMyActivity扩展BoilerPlateMyActivity实现FragmentActivity接口,该接口具有回调方法FragmentActivity。我的OnRequestPermissionsResultCallback类的实例为onRequestPermissionsResult(param1, param2, param3)

分类MyActivity

BoilerPlate

Class FragmentActivity

MyActivity

班级BoilerPlate

public class MyActivity extends FragmentActivity {

    private BoilerPlate boilerPlate;

    //...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);

        boilerPlate = new BoilerPlate(this);
    }

    //...

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, String[] grantResults){
        super(requestCode, permissions, grantResults);
    }
}

注意: public class FragmentActivity implements OnRequestPermissionsResultCallback { //... @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, String[] grantResults){ } //... } public class BoilerPlate { private MyActivity mActivity; BoilerPlate(MyActivity activity){ this.mActivity = activity; } } 不在修改范围内。我只能修改FragmentActivity和某些限制OnRequestPermissionsResultCallback

问题:每当触发回调时,我是否可以某种方式使用BoilerPlate内的MyActivity实例访问MyActivity的参数。

P.S 我知道我可以使用params在BoilerPlate中创建方法,并通过onRequestPermissionsResult(p1, p2, p3)中的BoilerPlate实例调用该方法。

分类MyActivity

boilerPlate

班级BoilerPlate

MyActivity

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

当你调用它的超级版本时,我不明白重写方法的意义。

但无论如何:你通过添加另一个回调来解决你的问题。换句话说:你的B级持有" a"宾语。不知何故,其他代码将在#34; a"上调用abc()。宾语。

如果附上" b"对象想知道这一点,唯一的方法是:类A允许B类在创建时注册另一个回调。所以每当调用abc()时," a&#34 ;; " a"调用b.xyz()。 (xzy是B类中的回调方法)。

如果你发现这令人困惑;好吧,这完全反映了我对你的问题的感受。不过实话说;我希望这会有所帮助。