こんにちは私は実行時にサンプルアプリを作成しようとしています。ホーム画面に戻り、バックグラウンドプロセスを実行し、トーストポイントを表示します。
必要な作業を行うには、バックグラウンドプロセスに別のスレッドが必要になると思います。これが私のメインアクティビティ(BackGroundPrcessingExampleActivity)のコードです:
enter code here
public class BackGroundProcessExampleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
Intent myIntent = new Intent(this, MyService.class);
startService(myIntent);
moveTaskToBack(false);
} catch (Exception e) {
e.printStackTrace();
}
}
「MyService.java」のコードは次のとおりです。
enter code here
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(getBaseContext(), "Service is started!", 1).show();
myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Toast.makeText(getBaseContext(), "Hello!",
Toast.LENGTH_SHORT).show();
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(2);
myHandler.sendEmptyMessage(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
new Thread(runnable).start();
return super.onStartCommand(intent, flags, startId);
}
私が抱えている問題は、トーストメッセージが表示されないことです。ブレークポイントを設定して、コードをステップ実行しているのにメッセージが表示されないことを確認できます。文脈が正しくないのではないかと思いますか?UIのContext(BackGroundPRcessExampleActivity)が必要ですか?よろしくお願いします。
D