下载管理器无法解析getSystemService

问题描述:

我遵循教程如何制作下载.pdf文件的应用程序。下载管理器无法解析getSystemService

下面的代码:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_vertretungsplan); 
    Button dlbutton = (Button) findViewById(R.id.buttondownload); 
    dlbutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      DownloadManager.Request request = new DownloadManager.Request(Uri.parse(myurl)); 
      request.setTitle("Vertretungsplan"); 
      request.setDescription("wird heruntergeladen"); 
      request.allowScanningByMediaScanner(); 
      request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
      String filename = URLUtil.guessFileName(myurl,null, MimeTypeMap.getFileExtensionFromUrl(myurl)); 
      request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS + "Schul-App",filename); 
      DownloadManager manager =(DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE); 
      manager.enqueue(request); 
     } 
    }); 

它显示了我的错误:

Cannot resolve method 'getSystemService(java.lang.string)'

+0

能使用'getSystemService'没有'this'前缀。 –

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); 
    } 
});