怎么回来没有按“后退”按钮

时间:2011-12-07 06:38:43

标签: android

我正在编写一个阅读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打开时,我想按一下“后退”按钮并返回主类视图。我怎么能这样做?

5 个答案:

答案 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();

现在当您按下后退按钮时,它将直接带您进入主要活动。希望这可以帮助您。