如何整理代码?我试图将所有内容放在不同的包中,但随后我使用GCM的通知不再有效。如果我把所有东西放在同一根包中没问题。
这是我的两个测试,左边给出了gcm上的问题,没有:
有没有办法轻松整理代码,就像我在正确的代码中那样?或者所有的课程,活动,服务都需要在同一个包中吗?
编辑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 :(得分:0)
如果你想组织你的代码,你有一些模式选项,如:MVC,关于Android是否使用默认MVC存在很大争议。
但是我在你的结构中看到你想要推荐的.java文件。 我给出了以下建议,我在不同的文件,书籍和github存储库中看到过(这些包是按字母顺序排列的):
活动
适配器
认证符
数据
data.migrations
片段
助手
接口
模型
偏好
同步
答案 1 :(得分: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>