グループの削除

グループを削除するには delete() メソッドを使います。

  • // groupUri contains the reference URI of the target group.
    
    // Instantiate the group.
    KiiGroup group = KiiGroup.createByUri(groupUri);
    
    try {
      // Delete the group.
      group.delete();
    } catch (GroupOperationException e) {
      // Handle the error.
    }
  • // groupUri contains the reference URI of the target group.
    
    // Instantiate the group.
    KiiGroup group = KiiGroup.createByUri(groupUri);
    
    // Delete the group.
    group.delete(new KiiGroupCallBack() {
      @Override
      public void onDeleteCompleted(int token, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
      }
    });

グループを削除すると、このグループが保持していた全てのデータ(Bucket、KiiObject、トピック)は自動的に削除されます。

groupUri の生成方法は グループの作成 をご覧ください。

ユーザー削除時のグループ

ユーザーを削除したとき、それに関連付けられたグループは自動的に削除されません。そのグループを参照するメンバーがいなくなってもグループは自動的に消えないため、参照されないグループやそのデータがアプリケーション内の領域を消費し続ける現象が起こりえます。

こうした現象を防止するため、ユーザーの削除では、次の点に注意する必要があります。

  • 削除対象のユーザーがオーナーのとき

    削除されるユーザーがグループのオーナーの場合、そのグループはオーナーが不在のまま残り続けます。グループのオーナーの変更や、メンバーの追加と削除ができるのはオーナーだけであるため、事実上、そのグループを管理できるユーザーがいなくなります。

    オーナーのユーザーを削除する前には、モバイルアプリの外部仕様に基づいて、オーナーを変更する、グループのオーナーであるユーザーは削除できないようにする(先にグループのオーナーでなくすよう案内する)、ユーザー削除時にグループごと削除するなどの対処を行う必要があります。

  • 削除対象のユーザーが最後のメンバーのとき

    削除されるユーザーがグループの最後のメンバーの場合、そのグループを利用するユーザーがいなくなります。URI によってグループが特定できるようになっている場合はグループを参照できますが、モバイルアプリの側で URI も保存していない場合はリークしているのと同じ状態になります(グループの参照方法は グループの参照ユーザーとグループの関連 をご覧ください)。

    URI による参照を行わない設計のときは、ユーザーの削除の際にグループの削除も考慮する必要があります。

    ユーザーを削除するとき、以下の方法でグループの削除も同時に行う処理を検討してください。

    1. 削除しようとしているユーザーについて、そのユーザーがメンバーであるグループの一覧を取得する
    2. 取得したグループのそれぞれについて、そのグループのメンバーを取得する
    3. 削除しようとしているユーザーがグループの最後の 1 人のメンバーなら、ユーザーの削除と同時にそのグループも削除する