我有一个活动和服务在我的应用程序中一起工作.我已将服务配置为远程服务(已实现的AIDL),因此即使活动不可见,它也会继续运行.
该服务负责轮询服务器以获取数据,并在满足特定条件时发送警报通知.我不希望服务在活动可见时发送这些通知.
服务是否有办法了解任何特定活动的状态?特别是一项与之相关的活动?
使用清单更新以解决权限问题:
package="com.interact.listen.android.voicemail"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
我在Logcat中遇到的错误:
09-17 15:33:17.881: WARN/ActivityManager(53): Permission Denial: receiving Intent { act=com.foo.bar.myobject.EVENT (has extras) } to ProcessRecord{43928b40 223:com.foo.bar.myobject/10022} (pid=223,uid=10022) requires com.foo.bar.myobject.EVENT due to sender com.foo.bar.myobject (uid 10022)
09-17 15:33:48.901: WARN/ActivityManager(53): Permission Denial: receiving Intent { act=com.foo.bar.myobject.EVENT (has extras) } to com.foo.bar.myobject requires com.foo.bar.myobject.EVENT due to sender com.foo.bar.myobject (uid 10022)
发送广播的任务:
@Override
public void onStart(Intent intent,int startId)
{
super.onStart(intent,startId);
serviceHandler = new Handler();
serviceHandler.postDelayed(myTask,100L);
Log.d(TAG,"onStart()");
}
class Task implements Runnable
{
public void run()
{
Log.i(TAG,"Getting myObjects...");
getMyObjects();
Bundle bundle = new Bundle();
bundle.putLongArray("ids",getIdsToUpdate());
Intent i = new Intent();
i.setAction(UPDATE_ACTION_STRING);
i.putExtras(bundle);
sendOrderedBroadcast(i,UPDATE_ACTION_STRING);
serviceHandler.postDelayed(this,30000L);
}
}
}