我目前有一个活动,当它显示时,通知也将显示在通知栏中.
这样,当用户按下主页并将活动推送到后台时,他们可以通过通知返回活动.
当用户按下后退按钮时,问题就出现了,我的活动被破坏但是通知仍然存在,因为我希望用户能够按下但仍然能够通过通知进入活动.但是当用户尝试这个时,我会尝试Null Pointers尝试启动一项新活动,而不是重新启动旧活动.
所以基本上我希望Back按钮的行为与Home按钮完全相同,这是我到目前为止的尝试方式:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
Log.d("CDA", "onKeyDown Called");
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
return;
}
Run Code Online (Sandbox Code Playgroud)
但是上面的代码似乎仍然允许我的Activity被销毁,如何在按下后退按钮时阻止我的Activity被销毁?
android back-button nullpointerexception onkeypress android-activity
我有一个可以创建并弹出DialogFragment的Fragment,但是当我点击后退按钮时,即使我显式调用setCancelable(false),它也会取消对话框; 我的DialogFragment有没有办法对后退按钮不敏感?
public class LoadingDialogFragment extends DialogFragment
{
String title;
String msg;
public LoadingDialogFragment()
{
this.title = "Loading...";
this.msg = "Please wait...";
}
public LoadingDialogFragment(String title, String msg)
{
this.title = title;
this.msg = msg;
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState)
{
final ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.setTitle(title);
dialog.setMessage(msg);
dialog.setIndeterminate(true);
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(false);
return dialog;
}
}
Run Code Online (Sandbox Code Playgroud)
我从AsyncTask创建DialogFragment:
private class GpsTask extends AsyncTask<String, Integer, Integer>
{
//ProgressDialog dialog;
@Override
protected void onPreExecute()
{
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
DialogFragment newFragment …Run Code Online (Sandbox Code Playgroud) android back-button fragment progressdialog android-asynctask
我正在开发一个Android应用程序,我想通过单击"后退"按钮或"主页"按钮来检测用户何时退出我的应用程序.
此外,一个类似的事件onInit()在我的场景中会很有用,因为我只想让MyIn?t操作从一开始就开始.
onDestroy() 在其他应用需要更多内存之前不会被调用.
我有一个EditTextView,它是由setText()我的代码和用户通过(软/硬)键盘编辑的 - 如果可能的话,通过语音输入.我希望以不同于普通用户输入的方式处理我的代码所做的输入:如果发生用户输入,则应触发内部事件.但我不知道如何区分两者.以前 - 在模拟器上开发时 - 我使用该onKeyDown()方法来捕获用户输入.但是,当在真实设备上进行测试时,我发现,这onKeyDown()不是从软键盘输入触发的.此外,语音输入不会被识别,但我认为这是一个小缺陷.所以这个解决方案对我来说别无选择.
另一方面,有onTextChanged()方法,但这是由两个setText()和键盘输入触发.那么如何区分两者或哪些方法仅由用户输入调用,而不是在使用时setText(),我可以覆盖它吗?
关于我为什么尝试这样做的一些信息:我正在使用ActivityGroups从tabHost活动中打开一个活动,并将新活动保留在选项卡下.那部分我有.但是当进入那个新活动时,如果我使用后退按钮,它会让我直接从标签活动开始,所以我必须点击几次才能回到原来的位置.
有没有办法设置后退按钮转到特定活动而不是杀死当前活动窗口?
我为Android创建了一个简单的游戏; 我想通过意外按下主页或后退按钮来阻止用户将游戏发送到后台.我计划使用对话框来确认用户的操作.我想要的是类似于Sirius对他们的应用程序所做的,如果你需要一个插图.
我尝试将此操作添加到重写的onPause(),但是在显示对话框后,活动立即消失,因此我认为我不会以正确的方式进行此操作.我怎样才能解决这个问题?
任何帮助表示赞赏.
在我的应用程序中,有时用户点击后退按钮,并且没有响应,因此他们立即再次点击,而不是回到上一个屏幕,他们返回2-3个屏幕.有时完全脱离应用程序.然而,只显示了一个屏幕,所有这些后退点击都发生了!有没有办法拦截这个并忽略这些后续点击.也许观察它们的间距或它们发生的屏幕?还有其他人有这个问题吗?
我的猜测是没有什么可以做的,因为用户可以完全控制后退按钮,但为什么Android不会忽略额外的点击,因为它们都发生在同一页面上,甚至没有说明要切换?