下载管理器无法解析getSystemService

时间:2016-11-09 16:33:29

标签: java android android-download-manager

我按照教程学习了如何创建一个下载.pdf文件的应用程序。

以下是代码:

def f(v1=1):
  v2 = 2
  def g(v3=4):
    return v1 + v2 + v3 + 8
  return g() + 16

def freeVar(val):
  def nested():
    return val
  return nested.__closure__[0]

def nested(outer, innerName, **freeVars):
  if isinstance(outer, (types.FunctionType, types.MethodType)):
    outer = outer.func_code
  for const in outer.co_consts:
    if isinstance(const, types.CodeType) and const.co_name == innerName:
      return types.FunctionType(const, globals(), None, None, tuple(
          freeVar(freeVars[name]) for name in const.co_freevars))

nestedG = nested(f, 'g', v1=1, v2=2)
print nestedG(4)  # will print 15

它显示了错误:

  

无法解析方法'getSystemService(java.lang.string)'

1 个答案:

答案 0 :(得分:2)

this指的是您正在使用的对象,因为它位于View.OnClickListener内,它引用该对象而不是您的Activity类。

这样的事情应该做

final Context c = this;
dlbutton.setOnClickListener(new View.OnClickListener() {
   @Override
    public void onClick(View view) {
        //...
        DownloadManager manager =(DownloadManager) c.getSystemService(Context.DOWNLOAD_SERVICE);
        manager.enqueue(request);
    }
});