1

Как организовать свой код? Я попытался поместить все в другой пакет, но мои уведомления с GCM больше не работают. если я поставил все в один корневой пакет без проблем.Как организовать свой код на Android

это мои два теста, слева создает проблемы на ГОМ праве не:

enter image description here

Есть ли способ, чтобы легко организовать свой код, как я сделал в правом? или все классы, виды деятельности, службы должны находиться в одном пакете?

EDIT 1 = РЕШЕНИЕ

Вам нужно создать свой собственный класс, расширяющий GCMBroadcastReceiver так:

import android.content.Context; 

import com.google.android.gcm.GCMBroadcastReceiver; 

public class GCMReceiver extends GCMBroadcastReceiver{ 
    @Override 
    protected String getGCMIntentServiceClassName(Context context) { 
     return "yourAppPackage.yourNewAddedPackage.GCMIntentService"; 
    } 
} 

Затем вам нужно изменить приемник по умолчанию в манифесте к пакету, где это класс. например:

<receiver android:name="yourPackage.PackageOfTheGCMReceiver.GCMReceiver" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
       <category android:name="be.vanlooverenkoen.piautomation" /> 
      </intent-filter> 
     </receiver> 

ответ

0

Вам нужно создать свой собственный класс, расширяющий GCMBroadcastReceiver так:

import android.content.Context; 

import com.google.android.gcm.GCMBroadcastReceiver; 

public class GCMReceiver extends GCMBroadcastReceiver{ 
    @Override 
    protected String getGCMIntentServiceClassName(Context context) { 
     return "yourAppPackage.yourNewAddedPackage.GCMIntentService"; 
    } 
} 

Затем вам необходимо изменить приемник по умолчанию в манифесте на пакет, в котором находится этот класс. например:

<receiver android:name="yourPackage.PackageOfTheGCMReceiver.GCMReceiver" 
      android:permission="com.google.android.c2dm.permission.SEND" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
       <category android:name="be.vanlooverenkoen.piautomation" /> 
      </intent-filter> 
     </receiver> 
0

Если вы хотите организовать свой код, у вас есть варианты, как шаблоны: MVC, Существует большая дискуссия о том, использует ли Android по умолчанию MVC.

Но я вижу вашу картинку в вашей структуре, вам нужна рекомендация для .java-файлов. Даю следующую рекомендацию о том, что я видел в разных файлах, книг и GitHub хранилищ (пакеты в алфавитном порядке):

деятельности

адаптеры

аутентификатор данных

data.migations

фрагменты

хелперы

интерфейсы

модель

предпочтение

синхронизация

+0

ааа JA Оке, да это то, что я пытаюсь сделать, но проблема с моим GCM не может принимать никаких сообщений больше –

+0

я понял, что GCMIntentService нужно, чтобы быть в моем корне , но все остальное может оставаться в пакетах. есть ли способ изменить это? –

+0

Иногда создайте пакет с услугами, но я не вижу постоянно – josedlujan

Смежные вопросы