以下のコードで、Eclipse は「この Handler クラスは静的である必要があります。そうしないと、リークが発生する可能性があります」という警告を生成します。
public class MyActivity extends Activity implements Runnable
{
final Handler handler = new Handler()
{
@Override
public void handleMessage( Message message)
{
String sResult = (String) message.obj;
if( (sResult != null) && (sResult != ""))
{
MyNonStatic = (TableLayout) findViewById( R.id.tableLayout); // any non-static method
}
return;
}
};
public void run()
{
final Message message = handler.obtainMessage( 1, MyFunction( context));
handler.sendMessage( message);
}
public String MyFunction( Context context)
{
return "MyNewString";
}
}
サイトで多くのトピックを確認していますが、解決策がありません。このコードを教えてください。
追加: handleMessage() で非静的メソッド (findViewById() など) を呼び出す必要があります!