小编cry*_*sis的帖子

当APNS仅存储一个以防设备脱机时,whatsapp如何接收多个通知?

根据官方Apple文档,如果设备处于脱机状态,APNS(Apple推送通知服务)仅存储最后一个通知.

Apple推送通知服务包括执行存储转发功能的默认服务质量(QoS)组件.如果APN尝试发送通知但设备处于脱机状态,则QoS会存储通知.它在设备上每个应用程序仅保留一个通知:从该应用程序的提供程序收到的最后一个通知.当离线设备稍后重新连接时,QoS将存储的通知转发到设备.QoS会在删除之前保留有限时间段内的通知.

那么当设备上线时,whatsapp等应用程序如何从多个用户发送消息?如果设备在线,这些消息将作为单独的通知收到.

apple-push-notifications ios whatsapp

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

Dagger 2:组件依赖于多个范围组件

我是Dagger 2的新手.我正在尝试在我的Android项目中实现它.我有Service需要的东西GoogleApiClient.我正在使用Dagger将其注入此服务中.

@FragmentScoped
@Component(dependencies = {NetComponent.class, RepositoryComponent.class})
public interface CustomServiceComponent {
    void inject(CustomService customService);
}

@Singleton
@Component(modules = {AppModule.class, NetModule.class})
public interface NetComponent {
    GoogleApiClient getGoogleApiClient();
}

@Singleton
@Component(modules = {AppModule.class, RepositoryModule.class})
public interface RepositoryComponent {
    DatabaseService getDatabaseService();
}
Run Code Online (Sandbox Code Playgroud)

AppModule,NetModule并且RepositoryModule有方法标记@Singleton @Provides 当我构建我的项目时,我收到此错误:

locationServiceComponent依赖于多个作用域组件:@Singleton NetComponent @Singleton RepositoryComponent

我理解我LocationComponent不能依赖于两个@Singleton范围的组件,但我需要在我的服务中同时使用它们@Singleton.

做同样的事还有更好的选择吗?

android dagger-2

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

自定义序列化程序,用于序列化List <String>中的List <User>

我有一个Model对象组

public class Group {
    String title;
    List<User> members;
    String createdBy;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Jackson来序列化这个对象.而不是序列化列表"成员"中的整个用户对象,我想序列化只是user.getTitle()字段.基本上我想要HashMap就像

{
  "title" : "sometitle"
  "members" : [user1.getTitle(), user2.getTitle()]
}
Run Code Online (Sandbox Code Playgroud)

我为此编写了一个自定义序列化器

public class GroupSerializer extends JsonSerializer<Circle> {

    @Override
    public void serialize(Group value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {

        if(value != null) {
            gen.writeStartObject();
            gen.writeStringField("title", value.getTitle());
            gen.writeStringField("createdBy", value.getCreatedBy());
            gen.writeFieldName("members");
            gen.writeStartArray();
            for(User user : value.getMembers()) {
                gen.writeString(user.getEmail());
            }
            gen.writeEndArray();
            gen.writeEndObject()
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.如何仅序列化List的字段而不是整个用户对象?

java serialization android jackson

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

Facebook登录:与facebook sdk的canopenurl问题?

我正在尝试将Facebook登录集成到我的IOS应用程序中.错误

-canOpenURL:URL失败:"fbauth2:///" - 错误:"(null)"

现在突然开始了.我的info.plist有以下条目

<key>LSApplicationQueriesSchemes</key> 
<array>     
<string>fbauth2</string>    
<string>fbapi</string>  
<string>fb-messenger-api</string> 
<string>fbshareextension</string> 
<string>fbauth</string> 
</array>
Run Code Online (Sandbox Code Playgroud)

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)

一段时间后工作正常.我尝试注销并再次登录,但现在无法登录.

PS我正在尝试登录xcode的ios模拟器

编辑: 这只发生在iphone 6模拟器中,其余的模拟器工作正常.

facebook ios facebook-ios-sdk swift

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

删除回收器视图网格布局中的默认间距

我正在使用StaggeredGridLayout经理进行回收查看

mStaggerGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager
                .VERTICAL);
Run Code Online (Sandbox Code Playgroud)

现在,我想删除列和行之间的默认间距.像这张图片中的东西,但只有2列.

在此输入图像描述

android gridview android-recyclerview

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

Android:如何动态更改动画速度?

我有一个过渡动画xml

<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0%p"
        android:duration="400"/>
</set>
Run Code Online (Sandbox Code Playgroud)

我想在几个项目上应用此动画,但持续时间不同.我试图通过调用setDuration然后调用startAnimation来动态更改持续时间.

mSlideLeft.setDuration(400);
view1.startAnimation(mSlideLeft);

mSlideLeft.setDuration(500);
view2.startAnimation(mSlideLeft);

mSlideLeft.setDuration(600);
view3.startAnimation(mSlideLeft);
Run Code Online (Sandbox Code Playgroud)

但所有观看动画的持续时间相同.如何动态更改动画的持续时间?

android android-animation

4
推荐指数
1
解决办法
4180
查看次数

RecyclerView需要很长时间才能加载

我正在为500件物品创建一个回收者视图.它为每个项目调用onCreateViewHolder和onBindViewHolder并且加载时间太长.由于这个原因,用户界面跳过大约522帧.如何让它加载更快?

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
      if(holder.getItemViewType() == SHUFFLE_ROW) {
           Log.d(TAG, "Position " + position);
           if(searchClicked) {
                    final SearchBoxHolder searchHolder = (SearchBoxHolder) holder;
                    searchHolder.backIcon.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                         }
                }
                else {
                    ShuffleAllViewHolder shuffleHolder = (ShuffleAllViewHolder) holder;
                    shuffleHolder.numOfSongs.setText(mSongList.size() + " Songs");
                }


            }
else if(holder.getItemViewType() == SONG_ROW) {
                ListViewHolder listViewHolder = (ListViewHolder) holder;
                Song currentSong = mSongList.get(position-1);
                listViewHolder.albumTitle.setText(currentSong.getTitle());
                listViewHolder.albumArtist.setText(currentSong.getArtist());
                Picasso.with(mContext).load(currentSong.getAlbumArt()).placeholder(R.drawable.placeholder)
                        .resize(70, 70)
                        .centerCrop()
                        .into(listViewHolder.albumImage);
            }
}

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(viewType …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

4
推荐指数
1
解决办法
4040
查看次数

如何通过接口传递Object ArrayList?

我将界面定义为

public interface QueryCompleteListener {
    void onQueryCompleted(int token, ArrayList<Object1> songList);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用此接口返回回调.在一些我希望传递的回调中ArrayList<Object1>,在某些情况下我想ArrayList<Object2>通过接口.

如果我声明接口方法为

void onQueryCompleted(int token, ArrayList<Object> songList)

为了传递任何类型的Object,当我通过传递调用此方法时,它会发出错误说找到Object1 required Object ArrayList<Object1>

java android arraylist

3
推荐指数
1
解决办法
589
查看次数