在像
这样的函数调用中,我很难找到“ Context”值SetFile("Name", ???, 1, "Some text here")
我已经看过这里https://developer.android.com/reference/android/content/Context,但似乎有很多可能性,而且我不清楚应该使用哪个以及如何使用。 我不知道该填写什么?的地方,有人可以帮我吗?
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();
}
}
答案 0 :(得分:1)
对于那段代码,由于我们不知道上下文是什么,所以实际上没有办法找出Context的来源。
但是,由于它是方法的类型,尽管服务也是可能的,但最高的可能性是活动上下文。
但是,实际上并不重要,因为在该方法中唯一使用Context的是Context.OpenFileOutput(BroadCastName, FileCreationMode.Private)
,并且可以通过任何地方的上下文安全地完成此操作。
修改:
要获取上下文,您只需在活动或服务内使用this
关键字即可。
因此,无论您想在哪里运行该方法,都只需调用SetFile("test", MainActivity.this, 2, "");
将MainActivity替换为您在其中使用的Activity或Service的类名。
如果要在“活动”或“服务”之外的其他地方使用它,请检查该组件是否具有getContext()
方法。
答案 1 :(得分:0)
您可以使用正在调用SetFile方法的活动的上下文。
答案 2 :(得分:0)
您可以使用
获取应用程序上下文List3 = ["Brandy", "Lady", "Baby"].
,然后使用它来传递var currentContext = Android.App.Application.Context;
方法。喜欢,
setFile