相关疑难解决方法(0)

Android java binder FAILED BINDER TRANSACTION?

我正在尝试从服务中下载图像并将其显示在活动中,但我一直在努力

 java binder FAILED BINDER TRANSACTION
Run Code Online (Sandbox Code Playgroud)

这是我的服务代码

public class DownloadImageService extends Service {

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    new LoadImageAsync().execute(intent.getStringExtra("type"));
    return Service.START_NOT_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}

private class LoadImageAsync extends AsyncTask<String, Void, String> {
    byte[] compressedImage;
    Bitmap bmp;
    String img;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {

        try {
            URL url = new URL(imgUrl);
            bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
            compressedImage = CompressBitmap.compresssImage(bmp);
            img = Base64.encodeToString(compressedImage, …
Run Code Online (Sandbox Code Playgroud)

android android-binder

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

Android应用程序崩溃在startActivity()

我已经启动了一个Intent并要求它进入主要活动,当它尝试应用程序崩溃时.

以下是尝试转到主要活动的代码.

Intent i = new Intent(
".MAIN_ACTIVITY");
startActivity(i);   
Run Code Online (Sandbox Code Playgroud)

这是Main_Activity的XML清单.

<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN_ACTIVITY" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

我对此仍然很陌生,所以任何帮助和/或建议都很有价值.

java xml android android-intent

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

可以在意图中传递的字符串数据的最大大小

是否可以在intent extra中传递的字符串数据有最大限制?下面的String str可以容纳多少数据?

intentI1.putExtra("MyString", str);
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
2
解决办法
9971
查看次数

Intent.putExtras大小限制?

我试图通过Intent.putExtras这样的方式将数据从一个活动传递到另一个活动:

private ArrayList<HashMap<String, String>> mGroups = new ArrayList<HashMap<String, String>>();
private ArrayList<HashMap<String, String>> mUsers = new ArrayList<HashMap<String, String>>();
...

Bundle data = new Bundle();
data.putInt("mode", mode);
data.putSerializable("groups", (Serializable) mGroups);
data.putSerializable("users", (Serializable) mUsers);
data.putInt("current_class", mCurrentClassId);
data.putInt("current_user", mCurrentUserId);

Intent intent = new Intent(ctx, ChildActivity.class);
intent.putExtras(data);
ctx.startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)

mUsers是一个HashMap<String,String>包含用户数据的列表,包括Base64编码的照片,此列表中的字符串大小总和约为500Kb

startActivityForResult用黑屏调用挂起几分钟然后我得到ANR错误.onCreate根本没有调用子活动.

如果我不在mUsers中添加大字符串(没有Base64编码的照片) - 工作得很好.

请帮忙.

java android android-intent android-3.0-honeycomb

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

如何为 Android 应用程序创建 TikTok / Musical.ly 等功能?

屏幕 1:GridView

在此输入图像描述

屏幕 2:详细信息页面

在此输入图像描述

任务达成:

1)从服务器加载gridview中的所有视频。

2)用户点击gridview项的任意位置。

3) 在详细信息屏幕中打开并播放特定视频。

4) 垂直滚动播放下一个或上一个视频。

目前的实施:

GridFragment {
    ArrayList<VideoPostModel> videoPostList;
    RecyclerView gridView;

    onnItemClick() {
        Intent intent  = new Intent(this, DetailActivity.class);
        intent.putExtra("data", videoPostList);
        intent.putExtra("click_index", clickedIndex);
        intent.putExtra("pagination_index", paginationIndex);
        startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)
DetailActivity {
    VerticlaViewPager vertiCalViewPager;
    ArrayList<VideoPostModel> videoPostList;

    onCreate() {
        videoPostList = getIntent().getParcelableArrayListExtra("data");
        clickedIndex = getIntent().getIntExtra("clickindex", 0);
        paginationIndex = getIntent().getIntExtra("pagination_index", 0);

        VideoFragmentStatePagerAdapter viewPagerAdapter = new VideoFragmentStatePagerAdapter(videoPostList);
        vertiCalViewPager.setAdapter(viewPagerAdapter);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

如果 videoPostList 在将数据从片段传递到 Activity 时有更多数据(大约 100 多个 VideoPostModel 对象),则应用程序会崩溃,因为有意图发送数据存在限制(/sf/answers/2593838761/)。

黑客替代方案:

1)静态数组列表

2)Application类中的Arraylist

寻找最佳且有效的解决方案来实现上述功能。 …

android android-intent android-layout android-fragments android-viewpager

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

最小化应用程序时的 TransactionTooLargeException

当我关闭/最小化我的应用程序时,我遇到了 TransactionTooLargeException。我假设这是由于我的 Bundle 太大(3 个 JSONArrays 作为字符串),但是如果有人可以从我的错误跟踪中诊断出更多信息,那就太好了。

这里是:

05-28 17:17:25.994 9518-9518/com.adamtrudeauarcaro.godbuilder E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 551100)
05-28 17:17:25.996 9518-9518/com.adamtrudeauarcaro.godbuilder D/AndroidRuntime: Shutting down VM
05-28 17:17:25.998 9518-9518/com.adamtrudeauarcaro.godbuilder E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.package.godbuilder, PID: 9518
                                                                                java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 551100 bytes
                                                                                    at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4211)
                                                                                    at android.os.Handler.handleCallback(Handler.java:751)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                    at android.os.Looper.loop(Looper.java:154)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6688)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
                                                                                 Caused by: android.os.TransactionTooLargeException: data parcel size 551100 bytes
                                                                                    at android.os.BinderProxy.transactNative(Native Method)
                                                                                    at android.os.BinderProxy.transact(Binder.java:628)
                                                                                    at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:4132)
                                                                                    at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4203) …
Run Code Online (Sandbox Code Playgroud)

android json bundle exception

0
推荐指数
1
解决办法
1170
查看次数