2015-11-04 32 views
1

我写了一个应用程序,每隔一段时间通过一个alarmIntent调出一个通知。用户点击通知并进入活动。在完成此活动后,他应该按下按钮返回到他原来的应用程序(如浏览器或主屏幕等),然后单击通知。 我的问题是,用户总是返回到我的应用程序的主要活动。 我该如何改变?通知按钮返回到原来的活动

谢谢!

回答

0

试试Activity.finish()里面的按钮点击监听功能。这与按下后退按钮相似。

2

尝试在活动中加入这一行

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_DEFAULT); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); 
    System.exit(0); 
} 
+0

从意向活动启动或在主要活动我的应用程序? – Jonas

+0

在通知中调用的活动中单击,希望它有所帮助:) – KRist

+0

它工作,中途:)当我按下后退按钮时,我返回到主屏幕。但是有没有办法返回到以前的应用程序呢? – Jonas

0

有两种类型的活动由通知启动:定期&特殊。 定期活动总是返回到启动程序或您之前的活动。 特殊活动将返回到您的应用程序。

作为您的描述,您应该使用常规活动并通过TaskStackBuilder获取PendingIntent,它将为通知活动创建一个人工后退栈。

例如:

PendingIntent resultPendingIntent = 
    stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 

这是文档,你可以在这里找到细节。 http://developer.android.com/guide/topics/ui/notifiers/notifications.html

+0

我试过了,但我仍然进入主屏幕而不是前一个应用程序。你能想象为什么? – Jonas

+0

TaskStackBuilder将Intent.FLAG_ACTIVITY_TASK_ON_HOME添加到动作Intent中,如果您不想返回主页,TaskStackBuilder将Intent.FLAG_ACTIVITY_TASK_ON_HOME添加到动作Intent中,如果您不想返回主页,则应该使用PendingIntent.getActivity(),而不是TaskStackBuilder:PendingIntent.getActivity(SecondActivity.this,0,i,PendingIntent.FLAG_UPDATE_CURRENT); –

相关问题