如何确保每次都从固定的进入点启动一个activity

cyliao 2010-05-31 02:44:23
我的程序必须有二个activity,一个是A,一个是B,必须是先启动A,再由A跳到B。但是如果我正常从A启动并切换到B后,按home键,把程序切换到后台,再长按home键把程序切回来。此时退出程序。再长按home键来启动程序,程序会直接从B启动。有什么办法能确保,每次启动时都是从A启动。
...全文
428 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyliao 2010-06-01
  • 打赏
  • 举报
回复
我的操作流程是这样:
1.启动程序
2.从A跳到B
3.按home把程序切到后台
4.长按home把程序切回来
5.退出程序
6.长按home,再从home菜单中启动程序,此时程序直接从B启动
cyliao 2010-06-01
  • 打赏
  • 举报
回复
现在我把manifest文件变成这样也不行
<activity android:name=".A" android:label="@string/app_name" android:clearTaskOnLaunch="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".B" android:launchMode="singleTask">
</activity>
我的手机是htm magic
vclongking 2010-05-31
  • 打赏
  • 举报
回复
把B的Activity里面的Intent-Filter去掉试试了
SunZhanwei 2010-05-31
  • 打赏
  • 举报
回复
你的B的那个Activty怎么有红色部分的啊,这个不对吧
<activity android:name=".B" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />

</intent-filter>
SunZhanwei 2010-05-31
  • 打赏
  • 举报
回复
//这个是调用第二个的activity的代码
public void onClick(View v)
{
Intent intent=new Intent();
intent.setClass(ActivityChange.this, ActivitySecond.class);
startActivity(intent);
}
我的按你的方式测试了,每次都成功啊,你是什么手机?
SunZhanwei 2010-05-31
  • 打赏
  • 举报
回复
这个是我的xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="activity.change"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ActivityChange"
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ActivitySecond"
/>
</application>
</manifest>
cyliao 2010-05-31
  • 打赏
  • 举报
回复
再说明一下,这种情况只会在长按home启动时才会出现,如果从menu的程序列表中启动能够从A启动。
cyliao 2010-05-31
  • 打赏
  • 举报
回复
在manifest中对A,B的设置如下:
<activity android:name=".A" android:label="@string/app_name" android:clearTaskOnLaunch="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".B" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
cyliao 2010-05-31
  • 打赏
  • 举报
回复
SunZhanwei,按你的方法试了一下,还是不行
vclongking 2010-05-31
  • 打赏
  • 举报
回复
没遇到过这情况 , 你Manifest.xml里面主类的Intent-Filter设置了默认的android.intent.action.MAIN , 重启动程序应该不会出现这样的问题吧?!
继续关注 。。。
SunZhanwei 2010-05-31
  • 打赏
  • 举报
回复
在你的启动的主Activity(也就是A)的manifist.xml里面添加如下两行就可以了
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧