标签: onpause

onPause/onRestore with savedInstanceState

我是Android开发的新手,我需要一些帮助来保存活动的状态.从onPause保存实例并从onRestore恢复实例的正确方法是什么,因为很明显Android并没有像onCreate或onSaveInstanceState那样发送savedInstanceState Bundle.或者除了使用savedInstanceState包之外还有更好的方法来保存吗?

这有意义吗?

[编辑]好吧,我想我知道我的真正问题是什么......但首先,我认为我所寻找的是使用SharedPreferences而不是savedInstanceState.

所以,做更多的调试日志观察我注意到,不是将Activity带到堆栈顶部而是创建一个新的.是的,我意识到我正在创造一个新的....

         Intent itemintent = new Intent(MediaList.this, AudioPlayer.class);

         Bundle b = new Bundle();
        //...putString some strings to send
         itemintent.putExtra("android.intent.extra.INTENT", b);
         itemintent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
         startActivityForResult(itemintent,0);
Run Code Online (Sandbox Code Playgroud)

...但FLAG_ACTIVITY_REORDER_TO_FRONT不应该阻止它创建新活动吗?我猜它认为它必须创建一个新的,因为我发送一些字符串?

更好的是,我怎样才能检查活动是否已经在堆栈中并切换到它,只要字符串是相同的? - 当用户从列表视图中单击媒体项时,我正在启动此活动.[/编辑]

android onpause

7
推荐指数
1
解决办法
9771
查看次数

OnResume相机重新启动黑屏

我有个问题.初始化相机进行预览并将另一个应用程序聚焦后,然后返回我的应用程序:预览显示为黑色.如果我继续拍照,则会拍摄我正常指向相机的位置.

我在OnResume()覆盖上做错了吗?相关代码如下:

public void ReleaseCamera()
    {
        if (myCamera != null)
        {
            myCamera.Release();
            myCamera = null;
        }
    }

protected override void OnPause()
    {
        base.OnPause();

        if (myButtonState == ButtonState.CameraActive)
            ReleaseCamera();
    }

protected override void OnResume()
    {
        base.OnResume();

        if (myButtonState == ButtonState.CameraActive)
            InitializeCamera();
    }

private void InitializeCamera()
    {
        SurfaceView mySurfaceView = FindViewById<SurfaceView>(Resource.Id.surfaceView1);

        myCamera = Android.Hardware.Camera.Open(cameraNumber);
        Android.Hardware.Camera.Parameters p = myCamera.GetParameters();

        myCamera.SetDisplayOrientation(90); // Portrait
        myCamera.SetPreviewDisplay(mySurfaceView.Holder);
        myCamera.StartPreview();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.:)

android onresume xamarin.android onpause xamarin

7
推荐指数
1
解决办法
2371
查看次数

Gradle - 如何在Gradle中添加一些延迟暂停挂起

我正在寻找一种方法,在两个gradle任务的调用之间插入几秒的暂停.

我可以用

firstTask.doLast {

.....

}
Run Code Online (Sandbox Code Playgroud)

类似于Linux/Unix的东西

sleep 45
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sleep task delay gradle onpause

7
推荐指数
1
解决办法
1万
查看次数

播放视频的TextureView在onPause后变为黑色

我正在使用TextureView在ListView中播放视频.TextureView本身运行完美,但是,如果我按下主页按钮并重新输入应用程序几次,TextureView会变黑(尽管音频继续播放).如果我退出并再次重新进入,TextureView将变为白色(或者可能是透明的,因为白色是我背景的颜色).

这是我的代码:

holder.instagramTextureView
    .setSurfaceTextureListener(new SurfaceTextureListener() {

        @Override
        public void onSurfaceTextureUpdated(
                SurfaceTexture surface) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onSurfaceTextureSizeChanged(
                SurfaceTexture surface, int width, int height) {
            // TODO Auto-generated method stub

        }

        @Override
        public boolean onSurfaceTextureDestroyed(
                SurfaceTexture surface) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public void onSurfaceTextureAvailable(
                SurfaceTexture surface, int width, int height) {
            final Surface s = new Surface(surface);

            try {
                holder.mMediaPlayer = new MediaPlayer();
                holder.mMediaPlayer.setDataSource(post
                                .getMedias().get(0)
                                .getMediaUrlVideomp4StandardRes());
                holder.mMediaPlayer.setSurface(s);
                holder.mMediaPlayer.prepare();

                holder.instagramVideoVolume …
Run Code Online (Sandbox Code Playgroud)

android android-listview onpause android-mediaplayer textureview

6
推荐指数
1
解决办法
3080
查看次数

假冒KeyEvent不能正常工作*就像"真实"按钮一样.为什么?

我试图用KEYCODE_BACK调用我的主要活动的onKeyDown(),这样它就像我自己按下"后退"按钮一样.我使用以下代码执行此操作:

   KeyEvent goBackDown = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK,0,0);
    goBackDown.dispatch(activity);
    SystemClock.sleep(50);  // as if human pressed the key
    KeyEvent goBackUp = new KeyEvent(0,0,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_BACK,0,0);
    goBackUp.dispatch(activity);
Run Code Online (Sandbox Code Playgroud)

我的活动的onKeyDown()目前只调用:

return super.onKeyDown(keyCode, event);
Run Code Online (Sandbox Code Playgroud)

然而,与真正的 Back按钮不同,当调用"假"代码时,活动拒绝变得不可见.

为什么?

android keyevent back-button onkeydown onpause

5
推荐指数
1
解决办法
7184
查看次数

onSaveInstanceState()和onPause()调用序列

关于onSaveInstanceState()的文件:

如果调用该方法,则始终在onStop()之前调用它,并且可能在onPause()之前调用它.

但是,我始终注意到日志消息onPause()之前总是被调用onSaveInstanceState().我把日志消息放在这两种方法中.请帮助我了解onSaveInstanceState()之前的调用情况onPause().

环境:Android v4.0(API 14)+ Eclipse v3.7.1 - Indigo.

android onpause

5
推荐指数
1
解决办法
1万
查看次数

为什么在以下情况下不会调用"onPause"?

通过该文档,在以下情况下调用"onPause":

当系统即将开始恢复先前的活动时.

与"onStop"相比,不同之处在于:

当活动不再对用户可见时调用,因为另一个活动已恢复并且正在覆盖此活动.

但是,当我长按HW-Home键并显示"最近的应用程序"时,不会调用"onPause".

此时,我无法与原始活动进行交互,但仍然可见.

我很困惑这种情况.请帮忙解释一下.

非常感谢你.BR,亨利

lifecycle android timing onpause android-activity

5
推荐指数
1
解决办法
8849
查看次数

Libgdx:暂停菜单和暂停状态

我有一个关于在屏幕中央出现窗口/暂停菜单时暂停/冻结游戏的问题。我已经创建了一个暂停屏幕类,每次按下后退键时都会调用该类。

我的问题是我不知道如何冻结或暂停游戏,这成为一个问题,因为每当我尝试单击暂停窗口的外部时,玩家就可以四处移动。

java libgdx onpause

5
推荐指数
1
解决办法
1万
查看次数

显示DialogFragment时,调用片段不会暂停

在我的应用程序的一部分中,我向用户显示ListView.当用户按下列表中的项目时,DialogFragment显示a.

@Override
public void onClick() {
    android.support.v4.app.FragmentTransaction ft = getFragment().getFragmentManager().beginTransaction();
    ft.addToBackStack(null);
    SingleSettingDialogFragment dialog = SingleSettingDialogFragment.newInstance(...);
    dialog.show(ft, "Single");
}
Run Code Online (Sandbox Code Playgroud)

DialogFragment具有以下结构:

@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
    super.onCreateDialog(savedInstanceSate);
    AlertDialog dialog =  new AlertDialog.Builder(...)
        ...
        .create();
    ...
    return dialog;
}
Run Code Online (Sandbox Code Playgroud)

当用户退出DialogFragment时,我希望onResume()调用调用片段的方法,但事实并非如此.

那么DialogFragments有什么特别之处呢?为什么在显示对话框时暂停调用Fragment?它怎么能实现?

我没有在文档中找到任何对此行为的引用,因此引用是一个加号.

android android-fragments onpause android-dialogfragment

5
推荐指数
1
解决办法
3237
查看次数

打开新应用程序后 onPause() 中的 startActivity 不起作用

当第一个活动暂停时,我开始第二个活动。

FirstActivity.java

@Override
public void onPause(){
    super.onPause();
    startActivity(new Intent(this, SecondActivity.class));
}
Run Code Online (Sandbox Code Playgroud)

当我按下主屏幕按钮时,SecondActivity 将启动,但会有延迟。在这段延迟中,有足够的时间打开新应用程序(例如Messenger)。但是,当我打开一个新应用程序时,SecondActivity 将不再启动(它甚至不会调用 SecondActivity 的 onCreate 方法)。

即使我打开一个新应用程序,如何仍然启动 SecondActivity?

android onpause start-activity android-6.0-marshmallow

5
推荐指数
1
解决办法
1720
查看次数