-1
votes

Quel est le contexte dans cette affaire?

Je me lance de trouver la valeur "context" dans l'appel de cette fonction comme xxx pré>

j'ai regardé ici https://developer.android.com/reference/andrroid/content/context Mais il semble y avoir beaucoup de possibilités et ne pas clair pour moi lequel Je devrais utiliser et comment. Je n'ai aucune idée de quoi remplir le "???" endroit, quelqu'un peut-il m'aider à ce sujet? P>

public void SetFile(string BroadCastName, Context Context, long? DirectoryId, string BaseContent)
    {
        if (!BroadCastName.Contains(".enc"))
            BroadCastName = BroadCastName + ".enc";
        if (DirectoryId == null)
            DirectoryId = 2;
        var File = Directories.Where(x => x.Id == DirectoryId).FirstOrDefault().File;
        var Path = Directories.Where(x => x.Id == DirectoryId).FirstOrDefault().Path;
        File FilesDir = new File(Path, "SDDnode");
        FilesDir.Mkdir();
        if (bool.Equals(FilesDir.CanWrite(), true)) {
            File newFile = new File(FilesDir, BroadCastName);
            try
            {
                OutputStreamWriter outputStreamWriter = new OutputStreamWriter(Context.OpenFileOutput(BroadCastName, FileCreationMode.Private));
                outputStreamWriter.Write(BaseContent);
                outputStreamWriter.Flush();
                outputStreamWriter.Close();
            }
            catch (IOException e)
            {
                #region
                ledger._base.Errors.Add(new Error {
                    Message = "Something went wrong in generate file in Android",
                    Process = "sddnode_android.Base._system",
                    Sys_Message = e.Message,
                    Line = 115,
                    Priority = 1
                });
                #endregion
            }

            OutputStream os;
            try
            {
                os = new FileOutputStream(newFile);
                //target.compress(CompressFormat.PNG, 100, os);
                os.Flush();
                os.Close();
            }
            catch (FileNotFoundException e)
            {
                e.PrintStackTrace();
            }
            catch (IOException e)
            {
                e.PrintStackTrace();
            }
        }


8 commentaires

Contexte, ferait probablement référence à un contexte ORM. Comme ef. Ou un contexte intégré à une compagnie d'accès, comme IO Accesslayer.


Que voulez-vous dire pour la question?


Un contexte Android est typiquement une activité ou une sous-classe d'application


Pour faire cet appel setfile ("nom", ???, 1, "Quelque texte ici") J'ai besoin de remplir quelque chose à l'endroit où maintenant les 3 points d'interrogation, cela je veux savoir


Oui j'ai compris que c'est et une activité ou une application, mais je veux savoir lequel


@Morton, connaissez-vous lequel est spécifique dans cette affaire? Contexte.openfileOutput ()


En termes d'OpenFileOutput, l'une ou l'autre fonctionnera, je voudrais simplement utiliser ApplicationContext


Pour être clair, je cherche une réponse comme celle-ci "setfile (" test ", contexte.Appopsservice, 2," ");"


3 Réponses :


0
votes

Vous pouvez utiliser le contexte de l'activité qui appelle la méthode Setfile.

vous pouvez obtenir un Bonne explication de la classe de contexte ici.


1 commentaires

Oui j'ai vu ce post mais cela ne me donne toujours pas l'échantillon ni la réponse dont j'ai besoin comme son très déroutant, je cherche une réponse comme celle-ci "setfile (" test ", contexte.appopsservice, 2," ");



1
votes

Pour ce code, il n'y a vraiment aucun moyen de savoir où ce contexte est venu, puisque nous ne savons pas ce qu'on appelle.

Mais, la possibilité la plus élevée est un contexte d'activité, en raison du type de méthode, bien qu'un service soit également probable.

Cependant, cela n'a pas d'importance, car la seule utilisation du contexte dans cette méthode est context.openfileOutput (wrwardname, filecreènemodemode.private) et c'est quelque chose qui peut être fait en toute sécurité avec un contexte de n'importe où.

EDIT:

Pour obtenir le contexte, vous pouvez simplement utiliser le mot clé à l'intérieur d'une activité ou d'un service.

Donc, où que vous souhaitiez exécuter cette méthode, vous appelez simplement setfile ("test", mainagivité.C'est 2, ""); remplace la mainActivité avec le nom de la classe de l'activité ou du service 'Re l'utiliser dans.

Si vous utilisez un autre endroit en dehors d'une activité ou d'un service, vérifiez si ce composant dispose d'une méthode getcontext () .


2 commentaires

L'appel ressemble à ce setfile ("test", contexte.Appopsservice, 2, ""); Pouvez-vous m'aider et donner un exemple de code?


Je ne comprends pas ce que vous demandez. Demandez-vous où obtenir le contexte à utiliser dans la méthode?



0
votes

Vous pouvez obtenir le contexte de l'application à l'aide de xxx

, puis utilisez-le pour passer dans setfile méthode. Comme, xxx


3 commentaires

Ok ça a fonctionné, merci! Mais je ne comprends toujours pas vraiment l'utilisation comme il n'est pas très logique si le contexte n'est pas très utile. Mais tu as sauvé ma frustration de jour!


Quelle moyenne par "pas utile"? Demandez une fois son importance au développeur indigène ....


Je veux dire dans ce contexte si vous pouvez choisir plusieurs options (désolé je ne suis pas un développeur Android)