Ich habe eine Notizblock Aktivität, die ein Fenster Dialog Version davon öffnet, wo Benutzer zu einer anderen App gehen und geben nach wie vor auf dem NotizblockBroadcastreceiver nicht empfangen können, wenn die Aktivität nicht
Für beiden Notizblock den gleichen Inhalt haben, Ich habe broadcastReceiver verwendet, um den Text der Notizblockaktivität auf den im Dialog zu setzen, wenn der Benutzer fertig ist.
Aktivität des BroadcastReceiver:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final globalVariable globalVariable = (globalVariable) getApplicationContext();
et_editor.setText(globalVariable.getScriptEditorText());
Toast.makeText(Script_editor.this, "Script Editor have been updated", Toast.LENGTH_SHORT).show();
}
};
Schließen des Dialogs:
btn_Close = (Button) view.findViewById(R.id.button_Close);
btn_Close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog alertDialog = new AlertDialog.Builder(getApplicationContext())
.setTitle("Would you like to update the editor?")
.setNegativeButton("No, discard the changes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(ColorCoordinatePickerService.this, "Changes have been discarded", Toast.LENGTH_SHORT).show();
dialog.dismiss();
stopSelf();
}
})
.setPositiveButton("Yes, update with changes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final globalVariable globalVariable = (globalVariable) getApplicationContext();
globalVariable.setScriptEditortext(CCEditor.getText().toString());
Intent intent = new Intent(BROADCAST_ACTION);
sendBroadcast(intent);
dialog.dismiss();
stopSelf();
}
})
.create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
});
es funktioniert, aber der Benutzer wieder auf die Notizblock Aktivität gehen (kann nicht in einer anderen App oder Tätigkeit sein).
Wie aktualisiere ich den Inhalt des Notizblocks, ohne ihn "öffnen" zu müssen?
Sind enfernen Sie Empfänger in onPause() der Aktivität? Wenn ja, wird der Aufruf der Funktion onReceive() nicht empfangen. Registrieren und entmelden Sie den Empfänger in onCreate und onDestroy für diesen speziellen Fall –