Android 无法获取附加服务:(
无论我做什么,我都无法从我的活动中获得额外的服务!!!这对我来说是至关重要的,我现在非常沮丧,我已经尝试了所有类型的旗帜!!!请帮助!我正在使用一个悬挂式帐篷,试图将额外的服务从意图传递到悬挂式帐篷,然后再传递到服务Android 无法获取附加服务:(,android,android-intent,alarm,Android,Android Intent,Alarm,无论我做什么,我都无法从我的活动中获得额外的服务!!!这对我来说是至关重要的,我现在非常沮丧,我已经尝试了所有类型的旗帜!!!请帮助!我正在使用一个悬挂式帐篷,试图将额外的服务从意图传递到悬挂式帐篷,然后再传递到服务 This is my code for the PendingIntent part. public void actionSetup(boolean activitycreated[],int buttonclicked[]) { SharedPref
This is my code for the PendingIntent part.
public void actionSetup(boolean activitycreated[],int buttonclicked[])
{
SharedPreferences data=getSharedPreferences("ACTIVITY_DATA",MODE_MULTI_PROCESS);
Calendar calendar=Calendar.getInstance();
int origin=Integer.valueOf(buttonclicked[0]);
myintent[buttonclicked[0]]=new Intent(getApplicationContext(),Handler.class);
myintent[buttonclicked[0]].setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
myintent[buttonclicked[0]].setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
myintent[buttonclicked[0]].putExtra("origin",origin);
myintent[buttonclicked[0]].setAction(String.valueOf(origin));
stuff[buttonclicked[0]]=PendingIntent.getBroadcast(getApplicationContext(),buttonclicked[0],myintent[buttonclicked[0]],PendingIntent.FLAG_CANCEL_CURRENT);
calendar.set(Calendar.MONTH,Calendar.getInstance().get(Calendar.MONTH));
calendar.set(Calendar.YEAR,Calendar.getInstance().get(Calendar.YEAR));
calendar.set(Calendar.DAY_OF_MONTH,Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY, data.getInt(buttonclicked[0]+"startimehour",1));
calendar.set(Calendar.MINUTE, data.getInt(buttonclicked[0]+"startimeminute",1));
calendar.set(Calendar.SECOND,0);
if (data.getInt(buttonclicked[0]+"startimehour",1)>=12)
{
calendar.set(Calendar.AM_PM,Calendar.PM);
}
else
{
calendar.set(Calendar.AM_PM,Calendar.AM);
}
AlarmManager alarmManager= (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(alarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),stuff[buttonclicked[0]]);
Log.i("value of da origin",String.valueOf(origin));
}
}
服务代码
public int onStartCommand(Intent intent, int flags, int startId)
{
Bundle exras=intent.getExtras();
int origin=exras.getInt("origin");
if(exras !=null ) {
Log.i("AY", String.valueOf(origin));
}
SharedPreferences data=getSharedPreferences("ACTIVITY_DATA",MODE_MULTI_PROCESS);
boolean daysselected [] []=new boolean[8][7];
boolean [] [] functionsselected=new boolean[8][2];
for(int m=0;m<=7;m++)
{
functionsselected[m][0]=data.getBoolean("silent"+m,false);
functionsselected[m][1]=data.getBoolean("bluetooth"+m,false);
}
Calendar c= Calendar.getInstance();
int dayofweek=c.get(Calendar.DAY_OF_WEEK);
Handler.completeWakefulIntent(intent);
stopSelf();
return super.onStartCommand(intent, flags, startId);
}
public int-onstart命令(Intent-Intent、int-flags、int-startId)
{
Bundle exras=intent.getExtras();
int origin=exras.getInt(“origin”);
如果(exras!=null){
Log.i(“AY”,String.valueOf(origin));
}
SharedReferences数据=获取SharedReferences(“活动数据”,模式多进程);
布尔日期选择[][]=新布尔值[8][7];
布尔[][]函数selected=新布尔[8][2];
对于(int m=0;m您看到的与您期望的相比是什么?您的服务
是否已经启动?是的,我的服务已经启动。对不起,如果您想获得帮助,您必须提供有关您看到的与您期望的更多详细信息。如果您的服务
实际上是从挂起开始的,我会感到惊讶帐篷
因为创建的PendingIntent
是一个广播。你需要注册一个BroadcastReceiver
来处理Intent
,然后它可以触发Intent
来启动服务
。反正我有一个广播接收器,我昨天解决了这个问题。