【问题标题】:Notification opens activity and I need to close it after通知打开活动,我需要在之后关闭它
【发布时间】:2017-01-01 02:15:04
【问题描述】:

我有一个发送通知的服务。 当您单击通知时,它会打开一个活动。 我想在单击按钮时关闭此活动。 我使用了finish();,但它关闭了活动并打开了应用程序的主要活动。 我不确定如何关闭它并返回到最后一个“屏幕/应用程序”

【问题讨论】:

  • 使用 API 21 提供的finishAndRemoveTask()
  • 我认为this answer 可能会对您有所帮助。

标签: android notifications


【解决方案1】:

只需在您调用finish()的按钮的onClickListener中路由到您要打开的页面

像这样的

Button buttonX = (Button)findViewById(R.id.buttonXName);
buttonX.setOnClickListener(new OnClickListener() {
    public void onClick(View v)
    {
        //  DesiredActivity is the activity you want to open on click
        Intent intent = new Intent(CurrentActivity.this, DesiredActivity.class);
        startActivity(intent);
        finish();
    } 
}); 

【讨论】:

  • 我找到了解决方案:this.finishAffinity();
  • 顺便说一句:this. 可以省略
【解决方案2】:

你不需要直接完成;你需要onBackPressed(),因为你从无处进入这个活动(手机的主屏幕/另一个应用程序)。

因此,当您致电 onBackPressed() 时,它将关闭应用程序:

@Override
public void onBackPressed() {
    super.onBackPressed();
    //supportFinishAfterTransition(); finish activity after going back 
    //if want overridePendingTransition(R.anim.nothing, R.anim.slide_out_right); 
}

此外,如果您想完成您的活动,您可以在super.onBackPressed() 行之后添加supportFinishAfterTransition()

添加后,在你的onClick方法中调用这个方法:onBackPressed(),这样你也可以添加自定义转场。

【讨论】:

    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多