我有一个Android应用程序有两个活动让我们说A和B,其中A是启动器活动。对于活动A,我注册了<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
<nav>
<ul>
<li><a class="active" id="nav-about" href="#about">About</a></li>
<li><a id="nav-products" href="#products">Products</a></li>
<li><a id="nav-scent" href="#scent">Scent</a></li>
<li><a id="nav-clients" href="#clients">Clients</a></li>
</ul>
</nav>
</header>
<section class="toggle-menu" id="about">
<div class="wrap">
About
</div>
</section>
<section class="toggle-menu" id="products">
<div class="wrap">
Products
</div>
</section>
<section class="toggle-menu" id="scent">
<div class="wrap">
Scent
</div>
</section>
<section class="toggle-menu" id="clients">
<div class="wrap">
Clients
</div>
</section>
,用于打开特定URL的应用程序。我想在当前运行的应用程序中为我的应用程序始终执行单个任务。为了解决这个问题,我尝试了intent-filter
属性的不同组合:
launchMode
,B singleTop
但是当我通过意图网址访问应用时,我在当前正在运行的应用中有两个应用
standard
B singleTask
,但每当我打开应用时,它都会以活动A开头,即使应用已经打开了活动B(在这种情况下我想要恢复应用)< / p>
standard
B singleTask
行为就像A singleTask
B singleTask
我希望我的应用程序具有相同的行为,例如gmail,总是在当前正在运行的应用程序中拥有最多一个实例,当我打开它并且已经有一个背景实例,恢复它并且如果我打开应用程序通过意图过滤器我想处理意图并相应地提供内容(例如gmail在后台,我点击它后收到一个新的邮件通知,android为gmail保留一个实例并显示新邮件)。
我使用Android Galaxy Note 4和Android 6.0
问题已解决
我为我的问题找到了一个解决方案,也许它不是最好的但它有效。首先,我添加了一个新的活动来捕获standard
intent filter
并launchMode = "SingleTask"
方法,我发布了一个事件来杀死所有现有的活动。
onCreate