我想要实现的是一个AsynTask,它可以检查用户是否可以访问我的应用程序中可以从各种片段调用的特定片段。
我不确定这是否可能,所以我想在这里问,这是我最近的尝试
public class HasAccess extends AsyncTask<Void,Void,Void> {
Context ctx;
String AppName;
IInterface i;
int AccessGranted;
public HasAccess(Context _ctx, String _AppName, IInterface _i)
{
this.ctx = _ctx;
this.AppName = _AppName;
this.i = _i;
}
@Override
protected Void doInBackground(Void... params) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
int UserID = Integer.parseInt(prefs.getString("prefs_userid", null));
PermsTableOps PTO = new PermsTableOps(ctx);
int AccessGranted = PTO.hasAccess(AppName,UserID);
return null;
}
@Override
protected void onPostExecute(Integer integer) {
i.Access(AccessGranted);
}
}
所以基本上从我希望能够调用此任务的各种片段开始,每个片段都有自己的接口,我想避免的是为每个接口创建一个AsyncTask。
我希望这很清楚!
编辑我认为上面的代码混淆了这个问题所以我提供了一个理论上的例子:
片段1继承接口1
片段2继承了接口2
AsyncTask 1
片段1和片段2都调用AsyncTask1 - 我希望通过在相关接口中发送,从asynctask发送到我的片段的响应是否从片段1或片段2调用。
我希望这更清楚。