我正在编写一个阅读pdf文件的项目。我的主类使用此代码来调用ReaderActivity
类:
Intent it = new Intent(this, ReaderActivity.class);
startActivity(it);
ReaderActivity
类如下所示,可以阅读pdf文件:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String mimetype = "application/pdf";
File file = new File(filepath);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), mimetype);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
当我成功打开pdf时,按“后退”按钮,视图为黑色。当我再次按“返回”时,它将返回主类视图。当pdf打开时,我想按一下“后退”按钮并返回主类视图。我怎么能这样做?
答案 0 :(得分:3)
不要在历史堆栈中保存readActivity。
使用
Intent it = new Intent(this, ReaderActivity.class);
it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
答案 1 :(得分:3)
您正在呼叫ReaderActivity
,然后您正在呼叫intent to View
pdf ..
现在当你从pdf阅读回来..你来回到阅读器活动你没有任何布局设置所以你看到黑屏...
第一件事 您应该直接从主要活动中调用视图意图。
但无论如何你为此创建了EXTRA活动。所以你必须尽快删除它的ReaderActivity,这样你就可以做到2种方式..
<强> 1)强>
Intent it = new Intent(this, ReaderActivity.class);
it.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(it);
或 2)
在ReaderActivity的onPause()
中
写this.finish();
答案 2 :(得分:1)
是的,亲爱的实际上发生了什么,你是从你的主要课程开始活动打开pdf而你的读者课程将再次启动阅读pdf的活动。这就是为什么你面临这样的问题。
要解决此问题,请不要从主类打开Reader Activity。尝试从主课程中打开 pdf 。因为读取pdf意图被调用,因为我们使用了ACTION_VIEW,因此它本身就是Activity。
或另一种选择是完成您的活动,并在 BackPressed()事件中调用您的主要课程。或者你也可以setFlag to Intent。喜欢, intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
我希望用这个你的问题就能解决了。
答案 3 :(得分:1)
您只需在阅读器类中添加一个按钮即可。在单击按钮的监听器上,您只需完成读取器活动,按照堆栈机制,如果以前的活动未手动关闭,它将自动转到上一个活动。
this.finish ///in reader class on button click
答案 4 :(得分:1)
空白屏幕即将到来,因为您没有在ReaderActivity中设置任何内容视图。所以尝试在这样的onRestart()中完成ReaderActivity
this.finish();
现在当您按下后退按钮时,它将直接带您进入主要活动。希望这可以帮助您。