我有一個需要顯示某些PDF文件的應用程序。這些文件對設備來說是本地的,並且該設備用於高安全性的位置,而無需網絡訪問。如何關閉或停止我在Android中啓動的外部應用程序
直到安卓得到一些天生的能力,或庫中顯示PDF文件,我依靠AdobeReader.apk,我正是如此火了:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(dgfile), "application/pdf");
i.setClassName("com.adobe.reader", "com.adobe.reader.AdobeReader");
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
// ctx is a passed-in Context of my main Activity
try {
ctx.startActivity(i);
}
catch (ActivityNotFoundException e) { // incase no viewer installed
Log.e("DG_External", "No viewer found!");
}
這工作完全,但之後我完成了顯示我想停止它並返回到我的主應用程序。 this S.O question上的'贏'回答說,如果我使用StartActivityForresult()我可以做到這一點finishActivity()但我不能得到它的工作(我不明白它如何工作,因爲沒有我們要停止)
仍然是活動的情況下,我改變了我的StartActivity到:
((Activity)ctx).startActivityForResult(i, 33); //!! // 33 = arbitrary r.c.
此調用的Adobe閱讀器就好了,但是做了......
((Activity)ctx).finishActivity(33);
...沒有產生任何結果。我嘗試在try/catch中包裝它,並沒有拋出異常。
我在做什麼錯,我該如何做到這一點?提前致謝!
通過使用Android SDK,無法從您自己的活動A完成活動B,一旦A已將控制權交給B.由用戶決定何時完成閱讀並希望去回到你的應用程序。 – tiguchi 2012-07-11 19:25:58
我不認爲你可以強制完成一項外部活動。您希望PDF查看器加載並顯示文件,但在一段時間過後纔會死掉? – CSmith 2012-07-11 19:27:04
也許你可以開始一個你擁有的活動,但是在一個新的任務中。然後,此活動將啓動Acrobat,但執行的任務相同。然後你可以通過執行exit()函數來控制這個單獨的任務。 – CSmith 2012-07-11 19:34:28