小编Cuo*_*yen的帖子

改造:@Field和@Body之间有什么不同

在一些帖子请求中,我不知道何时使用@Field,何时使用@Body.像什么是区别:

@POST("users/register")
    Call<String> register(@Body RequestBody registerRequest);
Run Code Online (Sandbox Code Playgroud)

和:

@POST("users/register")
    Call<String> register(@Field String id, @Field String pass);
Run Code Online (Sandbox Code Playgroud)

我可以使用@Body而不是@Field来反转吗?如果没有,为什么?如何知道这个案例使用@Body,其他案例使用@Field?

能否请你给我一些案例并解释一下,谢谢.

post android retrofit

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

Android分享意图Twitter:如何仅通过推文或直接消息分享?

我只需通过Tweet分享图片.

这是我的代码

Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType("image/*");
        if (mInsertableToGallery) {
            mInsertableToGallery = false;
            mInsertedImagePath = MediaStore.Images.Media.insertImage(getContentResolver(), mShareImage,
                    getResources().getString(R.string.app_name) + System.currentTimeMillis(), getResources().getString(R.string.app_name));
        }
        // share only 5 specific apps:
        List<Intent> targetedShareIntents = new ArrayList<>();
        List<ResolveInfo> resInfos = getPackageManager().queryIntentActivities(shareIntent, 0);
        if (!resInfos.isEmpty()) {
            for (ResolveInfo resolveInfo : resInfos) {
                String packageName = resolveInfo.activityInfo.packageName;
                Intent targetedShareIntent = new Intent(Intent.ACTION_SEND);
                targetedShareIntent.setType("image/*");
                targetedShareIntent.setPackage(packageName);
                targetedShareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(mInsertedImagePath));
                if (TextUtils.equals(packageName, "com.facebook.katana") //fb
                ||TextUtils.equals(packageName, "com.instagram.android") //instagram
                ||TextUtils.equals(packageName, "jp.naver.line.android") //line
                ||TextUtils.equals(packageName, "com.google.android.apps.plus") // plus
                ||TextUtils.equals(packageName, "com.twitter.android")) // twitter
            { …
Run Code Online (Sandbox Code Playgroud)

twitter android share android-intent

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

Android FCM - 禁用/启用通知

我这样实现:

public static void setPushSetting(Context context, boolean flag) {
    if(flag) {
        FirebaseInstanceId.getInstance().getToken();
    } else {
        try {
            FirebaseInstanceId.getInstance().deleteInstanceId();
        } catch (IOException e) {
            RxBus.getInstance().post(new OffPushError());
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

昨天,它有效,但今天FirebaseInstanceId.getInstance().deleteInstanceId();总是抛出异常.

在禁用和启用Firebase推送通知时是否还有其他方法可以实施?谢谢你的帮助!
-------更新异常的日志-------------

java.io.IOException: MAIN_THREAD
                                                            at com.google.firebase.iid.zzd.zzb(Unknown Source)
                                                            at com.google.firebase.iid.FirebaseInstanceId.deleteInstanceId(Unknown Source)
                                                            at jp.seesaa.itmama.push.PushUtil.setPushSetting(PushUtil.java:32)
                                                            at jp.seesaa.itmama.ui.main.setting.SettingFragment.onSharedPreferenceChanged(SettingFragment.java:66)
                                                            at android.app.SharedPreferencesImpl$EditorImpl.notifyListeners(SharedPreferencesImpl.java:476)
                                                            at android.app.SharedPreferencesImpl$EditorImpl.apply(SharedPreferencesImpl.java:384)
                                                            at android.support.v4.content.EditorCompatGingerbread.apply(EditorCompatGingerbread.java:25)
                                                            at android.support.v4.content.SharedPreferencesCompat$EditorCompat$EditorHelperApi9Impl.apply(SharedPreferencesCompat.java:45)
                                                            at android.support.v4.content.SharedPreferencesCompat$EditorCompat.apply(SharedPreferencesCompat.java:67)
                                                            at android.support.v7.preference.Preference.tryCommit(Preference.java:1353)
                                                            at android.support.v7.preference.Preference.persistBoolean(Preference.java:1558)
                                                            at android.support.v7.preference.TwoStatePreference.setChecked(TwoStatePreference.java:79)
                                                            at android.support.v7.preference.TwoStatePreference.onClick(TwoStatePreference.java:64)
                                                            at android.support.v7.preference.Preference.performClick(Preference.java:971)
                                                            at android.support.v7.preference.Preference.performClick(Preference.java:957)
                                                            at android.support.v7.preference.SwitchPreferenceCompat.performClick(SwitchPreferenceCompat.java:203)
                                                            at android.support.v7.preference.Preference$1.onClick(Preference.java:145)
                                                            at android.view.View.performClick(View.java:4780)
                                                            at android.view.View$PerformClick.run(View.java:19866)
                                                            at android.os.Handler.handleCallback(Handler.java:739)
                                                            at android.os.Handler.dispatchMessage(Handler.java:95) …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-cloud-messaging firebase-notifications

0
推荐指数
2
解决办法
3547
查看次数