I've implemented a content provider for my imageview on a widget. I
had to do this because large bitmaps won't work with the normal
remoteview.setImageViewBitmap. Now I use
remoteview.setImageViewUri(id, "content://com.../image?widget="+id)
and it works great except one thing. Every time I redeploy the screen
goes black for a few moments than everything comes back. I've traced
it to: INFO/ActivityManager(52): Killing app android.process.acore
(pid 12451) because provider <myContentProvider> is in dying process
<myWidget>.

The only thing my custom provider implements is this:

        public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws
FileNotFoundException
        {
                int id = 
Integer.valueOf(uri.getQueryParameter(PARAM_FILE_NAME));
                Bitmap b = UpdateService.GetContainerBitmap(id);

                String filename = "temp.png";

                File dir = getContext().getCacheDir();
                File file = new File(dir, filename);
                try
                {
                        FileOutputStream out = new FileOutputStream(file);
                        b.compress(Bitmap.CompressFormat.PNG, 100, out);
                        out.close();
                }
                catch(Exception e)
                {
                        return null;
                }

                ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file,
ParcelFileDescriptor.MODE_READ_ONLY);

                return new AssetFileDescriptor(pfd, 0,
AssetFileDescriptor.UNKNOWN_LENGTH);
        }

Now if I take out the part where it returns the AssetFileDescriptor
then the crash doesn't happen. But of course the remoteview doesn't
update either. So I want to know has anyone seen this and does anyone
have a solution? Am I even doing everything correctly?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to