不是让activity在栈中只有一个啊。
22 个解决方案
#1
还是看看launch mode,可以解决的
#2
android:launchMode="singleTop" 和android:launchMode="singleTask"和android:launchMode="singleInstance"都试了不行。
#3
一个进程APK启动的话,总得有一个入口类吧,对这个类采用单件模式,禁止创建多个实例
#4
我把launchMode改为singleTask,就是觉得该这样。可惜不行。
#5
就没有办法阻止启动的那个activity出来吗?
#6
我不知道你的热键是怎么检测的,不过我想可不可以在执行启动的时候做下过滤呢?判断下栈顶的Activity是不是你this.
#7
这个应该是判断不了,我改了那个热键的值,把他直接绑定我的activity上来,不管什么情况下按下那个热键我的activity就启动。我想问问android就没提供什么保证一个activity在栈中只能有一个,同时别人去调他的时候不会把它栈上面的activity给销毁掉的东西?
#8
做成QQ那样不行吗,当按热键时,把程序弄成Foreground形式的service,这样程序就不会被关闭了
然后用户通过Foreground图标打开
然后程序再加launchMode为singleTask试试
然后用户通过Foreground图标打开
然后程序再加launchMode为singleTask试试
#9
我的是个视频播放的应用,那样恐怕不合适。
#10
其实你可以在碰到热键的时候加个提示,是否退出
这样就不会一下子关闭掉了
酷狗就是这样做的
这样就不会一下子关闭掉了
酷狗就是这样做的
#11
谢谢你帮忙,现在是碰到热键时直接就启动跟热键绑定的activity了,我尝试监听这个热键,可是在onkeydown()方法里监听不到,对于怎么在activity里监听系统热键我没研究过,能说一下方法吗?
#12
应该是可以检查栈顶的Activity吧!貌似有个getCurrentActivity()方法来的.
#13
然后判断一下instance of.如果true,则什么都不做.否则....
#14
唉,这热键做的有利有弊啊。那个检查栈中activity的我能检测,现在这个热键跟HOME一样是系统热键,我在onkeydown里检测不到,你会检测系统热键不?
#15
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == event.KEYCODE_BACK) {
getWindow().setTitle("BACK");
return false;
} else {
return super.dispatchKeyEvent(event);
}
}
#16
对于系统热键的检测这个方法是不行的。
#17
我试的咋行呢
#18
真的,像返回键,音量加减这种热键,跟HOME键和发邮件热键还有我说的那个,这类按下直接连到另一个apk的热键监听不一样。
#19
楼主把那段代码粘过去试了?
#20
嗯,如我18楼回你的,你代码中的只是监听了返回键,那样可以。可是返回键、音量加减这类热键的监听方法和HOME键,邮件发送热键这类热键的监听是不一样的。你如果可以用那个方法监听到HOME的这类热键,说明你程序中肯定加了别的什么代码,而你没贴出来。
#21
不知道你说的热键是指手机下面的几个功能键吗?
硬件功能键,首页\返回\音量调节键?
我刚才试了,首页的那个监听不到android开发站上写这个键消息是不会发送到程序级,只到framework级
返回和音量调节我试了是可以监听的
硬件功能键,首页\返回\音量调节键?
我刚才试了,首页的那个监听不到android开发站上写这个键消息是不会发送到程序级,只到framework级
返回和音量调节我试了是可以监听的
#22
我也想知道这个
#1
还是看看launch mode,可以解决的
#2
android:launchMode="singleTop" 和android:launchMode="singleTask"和android:launchMode="singleInstance"都试了不行。
#3
一个进程APK启动的话,总得有一个入口类吧,对这个类采用单件模式,禁止创建多个实例
#4
我把launchMode改为singleTask,就是觉得该这样。可惜不行。
#5
就没有办法阻止启动的那个activity出来吗?
#6
我不知道你的热键是怎么检测的,不过我想可不可以在执行启动的时候做下过滤呢?判断下栈顶的Activity是不是你this.
#7
这个应该是判断不了,我改了那个热键的值,把他直接绑定我的activity上来,不管什么情况下按下那个热键我的activity就启动。我想问问android就没提供什么保证一个activity在栈中只能有一个,同时别人去调他的时候不会把它栈上面的activity给销毁掉的东西?
#8
做成QQ那样不行吗,当按热键时,把程序弄成Foreground形式的service,这样程序就不会被关闭了
然后用户通过Foreground图标打开
然后程序再加launchMode为singleTask试试
然后用户通过Foreground图标打开
然后程序再加launchMode为singleTask试试
#9
我的是个视频播放的应用,那样恐怕不合适。
#10
其实你可以在碰到热键的时候加个提示,是否退出
这样就不会一下子关闭掉了
酷狗就是这样做的
这样就不会一下子关闭掉了
酷狗就是这样做的
#11
谢谢你帮忙,现在是碰到热键时直接就启动跟热键绑定的activity了,我尝试监听这个热键,可是在onkeydown()方法里监听不到,对于怎么在activity里监听系统热键我没研究过,能说一下方法吗?
#12
应该是可以检查栈顶的Activity吧!貌似有个getCurrentActivity()方法来的.
#13
然后判断一下instance of.如果true,则什么都不做.否则....
#14
唉,这热键做的有利有弊啊。那个检查栈中activity的我能检测,现在这个热键跟HOME一样是系统热键,我在onkeydown里检测不到,你会检测系统热键不?
#15
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == event.KEYCODE_BACK) {
getWindow().setTitle("BACK");
return false;
} else {
return super.dispatchKeyEvent(event);
}
}
#16
对于系统热键的检测这个方法是不行的。
#17
我试的咋行呢
#18
真的,像返回键,音量加减这种热键,跟HOME键和发邮件热键还有我说的那个,这类按下直接连到另一个apk的热键监听不一样。
#19
楼主把那段代码粘过去试了?
#20
嗯,如我18楼回你的,你代码中的只是监听了返回键,那样可以。可是返回键、音量加减这类热键的监听方法和HOME键,邮件发送热键这类热键的监听是不一样的。你如果可以用那个方法监听到HOME的这类热键,说明你程序中肯定加了别的什么代码,而你没贴出来。
#21
不知道你说的热键是指手机下面的几个功能键吗?
硬件功能键,首页\返回\音量调节键?
我刚才试了,首页的那个监听不到android开发站上写这个键消息是不会发送到程序级,只到framework级
返回和音量调节我试了是可以监听的
硬件功能键,首页\返回\音量调节键?
我刚才试了,首页的那个监听不到android开发站上写这个键消息是不会发送到程序级,只到framework级
返回和音量调节我试了是可以监听的
#22
我也想知道这个