我知道这个问题已被多次询问,答案总是"我们不能禁用主页按钮".
我有一个不同的询问要问.
我编写了简单的代码,其中我的活动覆盖onKeyDown()并为所有按键返回true.
从理论上讲,这意味着无论谁打开应用程序都会卡在那里,并且无法选择退出应用程序.
当我在不同设备上测试此应用程序时,我做了以下观察:
这些观察似乎非常矛盾.
有没有人知道,为什么不同的设备表现不同,以及处理这种情况的最佳方法是什么.
据我所知,到目前为止,没有一家供应商定制过Android操作系统.每个人都在它上面放置UI层,但没有人触及内部.
我想模拟Android设备的所有物理按钮.
有没有办法模拟:
我希望我的应用程序隐藏显示在活动底部的主页和后退按钮.
我能够隐藏标题栏,但我无法进行主页和后退按钮.
有可能吗?
我在这个论坛上一遍又一遍地搜索和谷歌关于这个问题,也许它必须与我的线程或游戏如何开始的方式做一些事情.
这是游戏应用程序的骨架,请告诉我我做错了什么.
这就是我在线程中所做的事情;
public class GameThread extends Thread
{
static final long FPS = 30;
private GameView view;
private boolean running = false;
private SurfaceHolder surfaceHolder;
public boolean isSurfaceCreated = false;
private Object mPauseLock;
private boolean mPaused;
public GameThread(SurfaceHolder surfaceHolder, Handler handler, GameView view)
{
super();
mPauseLock = new Object();
mPaused = false;
this.surfaceHolder = surfaceHolder;
this.view = view;
}
public void setRunning(boolean run)
{
running = run;
}
/**
* pause thread.
*/
public void onPause() {
synchronized (mPauseLock) …
Run Code Online (Sandbox Code Playgroud) 在使用模拟器时,我已成功通过以下代码启动默认主启动器:
Intent de_intent=new Intent();
de_intent.setClassName("com.android.launcher","com.android.launcher2.Launcher");
startActivity(de_intent);
Run Code Online (Sandbox Code Playgroud)
但是当我在真实设备中执行此代码时,它显示以下异常:
Unable to find explicit activity class {com.android.launcher/com.android.launcher2.Launcher} have you declared this in AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
我已准备好MyApp,现在我看到了这个错误,当我安装应用程序时,它会显示启动画面,然后移动到第二个活动等等.现在,当我点击HOME
按钮并再次启动应用程序时,它从头开始而不是从哪里开始我离开了,只有当我从Eclipse安装应用程序时才会发生这种情况,并且我注意到应用程序从开始重新启动后,当我点击回来时,我可以看到我之前离开的活动?
我查看了以下链接:
我正在开发一个Android桌面应用程序,我希望它在第一次启动时(与用户确认)将其自身设置为Home按钮的默认操作.
目前,只有在运行我的应用程序后首次按下主页按钮时,Android系统才会向用户提供此选项.
实际上,我希望"后退"按钮不会返回到默认桌面,因为我的应用程序将是默认桌面.也许这个解决方案与Home按钮的解决方案相同?
知道怎么做吗?
我对Android编程比较陌生.我在工作中得到了一项任务,我需要创建一个自定义主页活动启动器.我做了一些研究,并在Android开发者网站(主页样本)上找到了这个例子.这是我原型的开始.
自定义Home活动需要用户进行身份验证(输入一些简单的凭据).我的想法是从Home活动启动一个子活动,并将意图中的结果传回Home活动.我需要能够捕获有关这些凭据的信息,并且该信息将被传递回Home活动.但是,尝试这个时我遇到了问题.我在LogCat中登录了以下内容:"活动正在作为新任务启动,因此取消了活动结果."
我知道startActivityForResult方法,但这对我来说似乎没有用.这是我从家庭活动中启动活动的地方:
@Override
protected void onResume() {
super.onResume();
bindRecents();
Intent iii = new Intent(this, Login.class);
startActivityForResult(iii, STATIC_LOGIN_INTEGER_VALUE);
}
Run Code Online (Sandbox Code Playgroud)
当代码执行时,我从ActivityManager标记中获取上述日志.
我的登录活动有一个用户输入凭据后将会点击的按钮.如果凭据是好的,那么我尝试执行以下操作(我输入了几个日志,以便我可以尝试弄清楚发生了什么):
public void onClick(View src) {
// check for authentic credentials
if(IsValid())
{
Intent loginAuth = new Intent("Login");
loginAuth.putExtra("userRole", userRole);
Log.d("LOGIN", "Setting result...");
if (getParent() == null) {
Log.d("LOGIN", "Parent was null");
setResult(Activity.RESULT_OK, loginAuth);
}
else {
Log.d("LOGIN", "setting result on parent...");
getParent().setResult(Activity.RESULT_OK, loginAuth);
}
Log.d("LOGIN", "Finishing the activity");
finish();
}
}
Run Code Online (Sandbox Code Playgroud)
我在清单文件中将这些活动定义如下:
<activity android:name="Home"
android:theme="@style/Theme"
android:launchMode="singleInstance"
android:stateNotNeeded="true"> …
Run Code Online (Sandbox Code Playgroud) android subactivity android-activity android-launcher android-homebutton
在我的应用程序中,我要求如果在应用程序工作期间按下主页按钮,并且如果用户从主屏幕的图标启动应用程序,则必须从上一个活动恢复.
如何保存上一屏幕历史记录并从同一屏幕恢复?
我是一个新的Android开发人员,我知道处理后退按钮,但我不知道如何处理主页按钮,当我单击主页按钮,我尝试了很多方法,但没有使用,请任何一个帮助我解决我的问题问题.我使用了以下代码,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_HOME)
{
Toast.makeText(this, "Click Home ", Toast.LENGTH_LONG).show();
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)