相关疑难解决方法(0)

savedInstanceState始终为null

这是我的savedInstaceState代码:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) 
{
    savedInstanceState.putStringArrayList("todo_arraylist", Altodo);
    Log.v("bundle", "Saved");
    super.onSaveInstanceState(savedInstanceState);
}


public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) 
    {
        Altodo = savedInstanceState.getStringArrayList("todo_arraylist");
        Log.v("bundle", "Restored");
    }
    else
    {
        Log.v("bundle", "null");
    }

    setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)

日志始终显示"捆绑保存"标记.

但在onCreate方法中,SavedInstanceState始终为null.

android

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

Android:onSaveInstanceState未从活动中调用

我有一个活动A,它调用活动B.在活动B中,当我点击一个按钮时,调用finish(),然后调用活动B的onDestroy()并返回活动A.

根据android文档,在调用on onDestroy之前,将调用onSaveInstanceState(Bundle bundle),其中我执行以下操作.

@Override
    public void onSaveInstanceState(Bundle outState) {

        super.onSaveInstanceState(outState);
        System.out.println("Saving webview state");
        Log.d(TAG, "In onsave");
        wv.saveState(outState);

    }
Run Code Online (Sandbox Code Playgroud)

并且下次从活动A开始活动B,

在oncreate()中,我执行以下操作:

onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

if(savedInstanceState != null){
//restore webview
}else {
// code
}
}
Run Code Online (Sandbox Code Playgroud)

但是,在活动B中调用onDestroy之前,永远不会调用onSaveInstanceState方法.任何有关这方面的帮助将不胜感激.

编辑:如果这是不可能的.如果有办法存储webview状态,请告诉我

android android-activity

54
推荐指数
3
解决办法
4万
查看次数

什么是Android的冰柱参数?

我注意到在一些编码中人们使用icicle和onCreate方法,我想知道它究竟是什么:

public class About extends Activity {
    @Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.whatup);
    }
Run Code Online (Sandbox Code Playgroud)

这是一回事savedInstanceState吗?

android

39
推荐指数
2
解决办法
2万
查看次数

使用意图捕获图片后,应用程序崩溃

使用intents.log cat捕获5到6张照片后,我的应用程序崩溃了.我无法找到崩溃的原因.请帮帮我.

    private void capturePhoto() {

        File root = new File(Environment.getExternalStorageDirectory(), "Feedback");
        if (!root.exists()) {
            root.mkdirs();
        }
        File file = new File(root, Constants.PROFILE_IMAGE_NAME + ".jpeg");
        Uri outputFileUri = Uri.fromFile(file);


        Intent photoPickerIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
        photoPickerIntent.putExtra("return-data", true);
        photoPickerIntent.putExtra("android.intent.extras.CAMERA_FACING", 1);
        startActivityForResult(photoPickerIntent, requestCode);


    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (this.requestCode == requestCode && resultCode == RESULT_OK) {

            File root = new File(Environment.getExternalStorageDirectory(), "Feedback");
            if (!root.exists()) {
                root.mkdirs();
            }
            File file …
Run Code Online (Sandbox Code Playgroud)

android

13
推荐指数
1
解决办法
1108
查看次数

onRestoreInstanceState()在预期时不被调用

我有遇到一些麻烦最近onSaveInstanceState()onRestoreInstanceState().我有多个活动使用这些方法来保存状态,以防系统清理它们.他们中的大多数都工作,除了一个,我不知道为什么.

具体发生的是:

  • 我让我的模拟器运行,并且dev工具设置为destroy()不再可见时的所有活动.(这样我就可以证明保存/恢复正常工作.)
  • 有问题的活动已启动,我将继续更改其某些状态.
  • 我启动一个新的Activity,让它运行一会儿,然后使用'back'按钮转到我之前的Activity.
  • 在返回相关活动时,我注意到默认状态是回来的,因此,它没有它应该的状态.

我注意到onSaveInstanceState()被调用,onCreate()被调用,但是有一个空包,onRestoreInstanceState()永远不会被调用.

谁看过这个吗?

android

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

失去变量切换方向

我刚接触到android.我写了几个程序并在手机上试了一下.当我切换方向时,它就像我的手机重启程序一样.我的所有变量都被重置了.实际上,唯一不重置的是编辑文本视图中的文本.是什么导致这个?我怎么能阻止它?我试过在谷歌和堆栈溢出上看它,但我所看到的是如何通过一起改变视图方向.我甚至尝试在一个程序中使用get text方法设置我的变量,但这不起作用.

variables android orientation

10
推荐指数
1
解决办法
8288
查看次数

Android在BT连接上强行杀死我的启动器

我用Apache cordova为Android编写了一个启动器应用程序.这是一个类似于信息亭的应用程序,基本上它工作正常.

不幸的是有一个问题:在某些情况下,Android会强制查杀我的应用并立即重新启动它. - 加载大约需要3秒钟,显示白屏.它开始全新(onPause,onResume不被调用).在日志中我找到:

V/WindowManager(  657): Changing focus from Window{42544288 u0 com.android.settings/com.android.settings.SubSettings} to Window{428ad610 u0 com.android.settings/com.android.settings.SubSettings} Callers=com.android.server.wm.WindowManagerService.addWindow:2665 com.android.server.wm.Session.addToDisplay:163 android.view.IWindowSession$Stub.onTransact:111 com.android.server.wm.Session.onTransact:126 
I/WindowManager(  657): Gaining focus: Window{428ad610 u0 com.android.settings/com.android.settings.SubSettings}
...
I/ActivityManager(  657): Force stopping com.myapp.name appid=10119 user=0: clear data
I/ActivityManager(  657): Killing 2639:com.myapp.name/u0a119 (adj 7): stop com.myapp.name
I/ActivityManager(  657):   Force finishing activity ActivityRecord{42542218 u0 com.myapp.name/.MainActivity t2}
V/ActivityManager(  657): Broadcast: Intent { act=android.intent.action.PACKAGE_RESTARTED dat=package:com.myapp.name flg=0x10 (has extras) } ordered=false userid=0 callerApp=null
V/ActivityManager(  657): Broadcast: Intent { act=android.intent.action.PACKAGE_DATA_CLEARED dat=package:com.myapp.name flg=0x10 (has extras) } …
Run Code Online (Sandbox Code Playgroud)

android bluetooth cordova android-4.4-kitkat android-5.1.1-lollipop

8
推荐指数
1
解决办法
828
查看次数

如何使用onRetainNonConfigurationInstance()为屏幕方向保存位图?

在我的班级视图中,手机摄像头将被打开,程序在用户从手机摄像头拍照后显示位图,但同时用户将屏幕旋转到"风景"位图将消失,活动的oncreate()将再次加载然后摄像头将再次打开.

我不知道用onRetainNonConfigurationInstance()或onSaveInstanceState()保存位图.

问题是如何在用户旋转手机之前保存位图(取自手机摄像头),这样即使手机处于横向模式,相同的位图也会在屏幕上显示?

---编辑---添加到AndroidManifest.xml是获取保存状态的好方法吗?

android state bitmap android-image android-layout

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

如何在用户退出应用程序时保存Android CheckBox的状态?

有什么办法可以在用户退出应用程序时保存我的复选框状态(已选中或未选中),这样我可以在应用程序重新启动时重新加载此状态?

@Override
public void onPause()
{

    super.onPause();
    save(itemChecked);
}
@Override
public void onResume()
{
    super.onResume();
    checkOld = load();

    for (int i = 0 ; i < checkOld.length; i++)
    {
        notes.ctv.get(i).setChecked(checkOld[i]);
    }
}
@Override
public void onRestart()
{
    super.onResume();
    checkOld = load();

    for (int i = 0 ; i < checkOld.length; i++)
    {
        notes.ctv.get(i).setChecked(checkOld[i]);
    }
}

private void save(final boolean[] isChecked) {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
 insertState();
 for(Integer i = 0; i < isChecked.length; i++)
 {
     editor.putBoolean(i.toString(), …
Run Code Online (Sandbox Code Playgroud)

checkbox android exit reload savestate

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

如何检测设备何时从纵向模式切换到横向模式?

我有一个应用程序,显示活动中的全屏位图.为了提供快速加载时间,我将它们加载到内存中.但是当屏幕改变方向时,我想清除缓存,以便再次使用适合新维度的位图填充它.唯一的问题是,为了做到这一点,我需要检测何时发生方向变化.有谁知道如何检测这个?

android screen-orientation orientation-changes

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

Android startCamera为我提供了空Intent,并且...是否破坏了我的全局变量?

我有下一个问题:

当我尝试启动相机时,我可以拍摄照片,甚至将其保存在sdcard上,但是当我准备在设备上显示该照片的路径时,会出现错误。

我的全局变量为2(我使用了1,但最好使用2来确保这是一个奇怪的错误):

    private File photofile;
private Uri mMakePhotoUri;
Run Code Online (Sandbox Code Playgroud)

这是我的入门相机功能:

@SuppressLint("SimpleDateFormat")
public void farefoto(int num){
// For naming the picture
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
    String n = sdf.format(new Date());
    String fotoname = "Immagine-"+ n +".jpg";

//Going through files and  folders
    File photostorage = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    File photostorage2 = new File(photostorage, "Immagini");
    System.out.println(photostorage+"\n"+photostorage2);
    photostorage2.mkdirs();
// My file (global)
    photofile = new File(photostorage2, fotoname);
    Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //intent to start camera
// My URI (global)
    mMakePhotoUri = Uri.fromFile(photofile);
    new Bundle(); …
Run Code Online (Sandbox Code Playgroud)

variables android global nullpointerexception android-camera-intent

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

只有在屏幕旋转的情况下才调用 onRestoreInstanceState() 吗?

我有一个关于 Android 中的 Activity Lifecycle 的问题。我想知道,在什么情况下调用 onRestoreInstanceState() 方法?

文档说

“仅当存在要恢复的已保存状态时,系统才会调用 onRestoreInstanceState()”

但我想知道这种情况什么时候会发生。它是否仅适用于屏幕旋转的情况,当前台活动被销毁并重新创建时?

android activity-lifecycle

2
推荐指数
1
解决办法
2189
查看次数