我更新的代碼爲公司應用程序,並有大約20活動課,所有下載一個PDF,然後使用此代碼顯示它:如何使用實用工具類來啓動意圖的Android
public void showPdf()
{
File file = new File(Environment.getExternalStorageDirectory()+"/pdf/Read.pdf");
PackageManager packageManager = getPackageManager();
Intent testIntent = new Intent(Intent.ACTION_VIEW);
testIntent.setType("application/pdf");
List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(file);
intent.setDataAndType(uri, "application/pdf");
startActivity(intent);
}
代碼工作,但它已被複制到所有20類(對我來說似乎非常糟糕),我想把它放到每個活動類導入的單個類中,但是當我嘗試執行此操作時,像getPackageManager()
和startActivity(intent)
之類的東西不再工作。
我該如何構建我的課堂才能做到這一點?還是我以錯誤的方式去做這件事?
我最終以您的第一條評論來創建一個活動類,然後爲所有其他類創建子類。這種靜態方法會比這更好嗎? – Ben
是的,會的。我的第一個解決方案'創建一個擴展Activity並在新類中實現該方法,然後擴展您創建的新類的類'將是一種更好的做法,當您必須在您的每個活動中重寫活動方法時,例如: onBackPressed,onSaveInstanceState,onRestoreInstanceState(對於與Context密切操作的方法,然後在每個Activity中可以擴展這樣一個類的方法,你將不得不調用super();)但是,然後我再次讀到你的問題,並意識到沒有必要這樣的設計模式適合你的問題 –