Ваш URL для загрузки не является ссылкой на какой-либо файл. Это каталог. Убедитесь, что это файл и существует. Также проверьте окно logcat на наличие журналов ошибок. Еще одно предложение, всегда лучше сделать printStackTrace () в блоках catch вместо Logs. Это дает более подробное представление об ошибке.
Измените эту строку:
URL url = new URL("http://myexample.com/android/");
на:
URL url = new URL("http://myexample.com/android/yourfilename.txt"); //some file url
Далее, в блоке catch добавьте эту строку:
e.printStackTrace();
Также в пути к каталогу это должно выглядеть примерно так:
File dir = new File(root.getAbsolutePath() + "/mnt/sdcard/myclock/databases");
вместо
File dir = new File(root.getAbsolutePath() + "/myclock/databases");
Далее убедитесь, что вы получили разрешение на запись во внешнее хранилище в манифесте Android.
Как говорит mat1t - вам нужно добавить NotifyIcon в ваше приложение, а затем использовать что-то вроде следующего кода для установки всплывающей подсказки и контекста menu:
this.notifyIcon.Text = "This is the tooltip";
this.notifyIcon.ContextMenu = new ContextMenu();
this.notifyIcon.ContextMenu.MenuItems.Add(new MenuItem("Option 1", new EventHandler(handler_method)));
Этот код показывает значок только на панели задач:
this.notifyIcon.Visible = true; // Shows the notify icon in the system tray
Если у вас есть форма (по любой причине), вам потребуется следующее:
this.ShowInTaskbar = false; // Removes the application from the taskbar
Hide();
Щелчок правой кнопкой мыши для открытия контекстного меню обрабатывается автоматически, но если вы хотите выполнить какое-либо действие при щелчке левой кнопкой мыши, вам необходимо добавить обработчик щелчка:
private void notifyIcon_Click(object sender, EventArgs e)
{
var eventArgs = e as MouseEventArgs;
switch (eventArgs.Button)
{
// Left click to reactivate
case MouseButtons.Left:
// Do your stuff
break;
}
}
Я написал приложение для панели задач с помощью .NET 1.1, и мне не нужна форма.
Прежде всего, установите стартовый объект проекта как Sub Main
, определенный в модуле.
Затем программно создайте компоненты: NotifyIcon
и ContextMenu
.
Не забудьте включить MenuItem
«Выйти» или аналогичный.
Привяжите ContextMenu
к NotifyIcon
.
Вызов Application.Run ()
.
В обработчике событий для Quit MenuItem
обязательно вызовите набор NotifyIcon.Visible = False
, затем Application.Exit ()
.
Добавьте то, что вам нужно, в ContextMenu
и обработайте правильно :)
Приложение "Панель задач" - это обычное приложение для создания форм выигрыша, с той лишь разницей, что оно создает значок в области панели задач Windows. Чтобы создать значок sys.tray, используйте компонент NotifyIcon, вы можете найти его на панели инструментов (Общие элементы управления) и изменить его свойства: значок, всплывающая подсказка. Также он позволяет обрабатывать сообщения о щелчках мыши и двойных щелчках.
И еще одна вещь, чтобы добиться внешнего вида или стандартного приложения в области уведомлений. добавьте следующие строки в событие показа основной формы:
private void MainForm_Shown(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
Hide();
}
Насколько мне известно вы по-прежнему должны писать приложение, используя форму, но не иметь элементов управления в форме и никогда не делать его видимым. Используйте NotifyIcon (образец MSDN которого можно найти здесь ), чтобы написать свое приложение.
Form1
из кода. Form1
. NotifyIcon
, чтобы создать значок на панели задач (назначить ему значок). NotifyIcon
и проведите различие между правым и левым щелчком, установив контекстное меню и показывая его, для какой кнопки (правая / левая) была нажата. Приложение. Запустите ()
, чтобы приложение продолжало работать, и Application.Exit ()
для выхода. Или bool bRunning = true; while (bRunning) {Application.DoEvents (); Thread.Sleep (10);}
. Затем установите bRunning = false;
, чтобы выйти из приложения.