我必须创建一个Android应用程序,即使应用程序不工作,也会在收到新消息时发出通知。我正在使用firebase数据库。我编写了firebase数据快照的代码,但它只在应用程序正常工作时才能运行我需要运行此代码,如果应用程序不能正常工作。
Mref=new Firebase("https://iyutue-30s49.firebaseio.com/");
Mref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value=dataSnapshot.getValue(String.class);
myDb.GetAllData();
String idd= String.valueOf(myDb.id);
if (value.equals(idd)==true){
NotificationCompat.Builder builder=new NotificationCompat.Builder(getApplicationContext());
builder.setSmallIcon(R.drawable.ic_tab_profile);
builder.setContentTitle("plaese").setContentText("jijo");
Intent intent =new Intent(getApplicationContext(),MainActivity.class);
TaskStackBuilder stackBuilder=TaskStackBuilder.create(getApplicationContext());
stackBuilder.addParentStack(MainActivity.this);
stackBuilder.addNextIntent(intent);
PendingIntent pendingIntent=stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
NotificationManager NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
NM.notify(0,builder.build());
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
我需要在应用程序不工作时在后台执行此代码也请帮助我在advnace
答案 0 :(得分:1)
这段代码需要包装在要执行的Android组件中。这实际上取决于你的触发器是什么。如果您想在后台执行此操作,那么使用 _recorder.Reset();
_recorder.SetAudioSource(AudioSource.Mic);
_recorder.SetOutputFormat(OutputFormat.Mpeg4);
_recorder.SetAudioEncoder(AudioEncoder.HeAac);
_recorder.SetAudioChannels(1);
_recorder.SetAudioSamplingRate(44100);
_recorder.SetAudioEncodingBitRate(96000);
_recorder.SetOutputFile(MediaPath.tempDir + Java.IO.File.Separator + File_Name);
或service
是您最好的选择。
正如我所提到的,它实际上取决于触发器。
对于一个例如,让我们说,你有一个应用程序需要在检测到新的短信时显示祝酒词。在这种情况下,您需要注册广播,系统会在SMS到达时调用广播接收器。在接收器中,您可以放置自己的逻辑(如展示吐司)。